gotask icon indicating copy to clipboard operation
gotask copied to clipboard

Windows 系统支持

Open try-to opened this issue 1 year ago • 2 comments

用于swoole-cli Windows系统下的使用

go test -v .\server_windows_test.go .\server_windows.go .\common.go .\flag.go .\client.go .\generator.go .\process_windows.go
=== RUN   TestClearAddr
C:\Users\tryto\AppData\Local\Temp\774225308
--- PASS: TestClearAddr (0.00s)
PASS
ok      command-line-arguments  1.051s

hyperf 将go程序打包为.exe 下启动正常

try-to avatar Aug 11 '23 04:08 try-to

未改变原代码,原有文件上加了编译条件判断

try-to avatar Aug 11 '23 04:08 try-to

go run .\example\sidecar.go -address 127.0.0.1:6001

or

go build -o app.exe .\sidecar.go
.\app.exe -address 127.0.0.1:6001
const ADDR = '127.0.0.1:6001';

run(function () {
    $task = new SocketIPCSender(ADDR);
    var_dump($task->call('App.HelloString', 'Hyperf'));
    var_dump($task->call('App.HelloInterface', ['jack', 'jill']));
    var_dump($task->call('App.HelloStruct', [
        'firstName' => 'LeBron',
        'lastName' => 'James',
        'id' => 23,
    ]));
    var_dump($task->call('App.HelloBytes', base64_encode('My Bytes'), GoTask::PAYLOAD_RAW));
    try {
        $task->call('App.HelloError', 'Hyperf');
    } catch (\Throwable $e) {
        var_dump($e);
    }
    try {
        $task->call('App.HelloPanic', '');
    } catch (\Throwable $e) {
        var_dump($e);
    }
});
swoole-cli .\main.php
string(14) "Hello, Hyperf!"
array(1) {
  ["hello"]=>
  array(2) {
    [0]=>
    string(4) "jack"
    [1]=>
    string(4) "jill"
  }
}
array(1) {
  ["hello"]=>
  array(3) {
    ["id"]=>
    int(23)
    ["firstName"]=>
    string(6) "LeBron"
    ["lastName"]=>
    string(5) "James"
  }
}
string(8) "My Bytes"
object(Spiral\Goridge\Exceptions\ServiceException)#9 (7) {
  ["message":protected]=>
  string(92) "error 'Hyperf, it is possible to return error' on 'Hyperf\GoTask\Relay\CoroutineSocketRelay'"
  ["string":"Exception":private]=>
  string(0) ""
  ["code":protected]=>
  int(0)
  ["file":protected]=>
  string(85) "/cygdrive/f/.../gotask/vendor/spiral/goridge/src/RPC.php"
  ["line":protected]=>
  int(123)
  ["trace":"Exception":private]=>
  array(4) {
    [0]=>
    array(6) {
      ["file"]=>
      string(85) "/cygdrive/f/.../gotask/vendor/spiral/goridge/src/RPC.php"
      ["line"]=>
      int(107)
      ["function"]=>
      string(10) "handleBody"
      ["class"]=>
      string(18) "Spiral\Goridge\RPC"
      ["type"]=>
      string(2) "->"
      ["args"]=>
      array(2) {
        [0]=>
        string(38) "Hyperf, it is possible to return error"
        [1]=>
        int(12)
      }
    }
    [1]=>
    array(6) {
      ["file"]=>
      string(79) "/cygdrive/f/.../gotask/src/IPC/SocketIPCSender.php"
      ["line"]=>
      int(52)
      ["function"]=>
      string(4) "call"
      ["class"]=>
      string(18) "Spiral\Goridge\RPC"
      ["type"]=>
      string(2) "->"
      ["args"]=>
      array(3) {
        [0]=>
        string(14) "App.HelloError"
        [1]=>
        string(6) "Hyperf"
        [2]=>
        int(12)
      }
    }
    [2]=>
    array(6) {
      ["file"]=>
      string(59) "/cygdrive/f/.../win/.\main.php"
      ["line"]=>
      int(41)
      ["function"]=>
      string(4) "call"
      ["class"]=>
      string(33) "Hyperf\GoTask\IPC\SocketIPCSender"
      ["type"]=>
      string(2) "->"
      ["args"]=>
      array(2) {
        [0]=>
        string(14) "App.HelloError"
        [1]=>
        string(6) "Hyperf"
      }
    }
    [3]=>
    array(2) {
      ["function"]=>
      string(9) "{closure}"
      ["args"]=>
      array(0) {
      }
    }
  }
  ["previous":"Exception":private]=>
  NULL
}
object(Spiral\Goridge\Exceptions\ServiceException)#10 (7) {
  ["message":protected]=>
  string(94) "error 'panic in go: Test if we can handle panic' on 'Hyperf\GoTask\Relay\CoroutineSocketRelay'"
  ["string":"Exception":private]=>
  string(0) ""
  ["code":protected]=>
  int(0)
  ["file":protected]=>
  string(85) "/cygdrive/f/.../gotask/vendor/spiral/goridge/src/RPC.php"
  ["line":protected]=>
  int(123)
  ["trace":"Exception":private]=>
  array(4) {
    [0]=>
    array(6) {
      ["file"]=>
      string(85) "/cygdrive/f/.../gotask/vendor/spiral/goridge/src/RPC.php"
      ["line"]=>
      int(107)
      ["function"]=>
      string(10) "handleBody"
      ["class"]=>
      string(18) "Spiral\Goridge\RPC"
      ["type"]=>
      string(2) "->"
      ["args"]=>
      array(2) {
        [0]=>
        string(40) "panic in go: Test if we can handle panic"
        [1]=>
        int(12)
      }
    }
    [1]=>
    array(6) {
      ["file"]=>
      string(79) "/cygdrive/f/...//gotask/src/IPC/SocketIPCSender.php"
      ["line"]=>
      int(52)
      ["function"]=>
      string(4) "call"
      ["class"]=>
      string(18) "Spiral\Goridge\RPC"
      ["type"]=>
      string(2) "->"
      ["args"]=>
      array(3) {
        [0]=>
        string(14) "App.HelloPanic"
        [1]=>
        string(0) ""
        [2]=>
        int(12)
      }
    }
    [2]=>
    array(6) {
      ["file"]=>
      string(59) "/cygdrive/f/.../.\main.php"
      ["line"]=>
      int(46)
      ["function"]=>
      string(4) "call"
      ["class"]=>
      string(33) "Hyperf\GoTask\IPC\SocketIPCSender"
      ["type"]=>
      string(2) "->"
      ["args"]=>
      array(2) {
        [0]=>
        string(14) "App.HelloPanic"
        [1]=>
        string(0) ""
      }
    }
    [3]=>
    array(2) {
      ["function"]=>
      string(9) "{closure}"
      ["args"]=>
      array(0) {
      }
    }
  }
  ["previous":"Exception":private]=>
  NULL
}

try-to avatar Aug 11 '23 04:08 try-to