WebSocketChannelException:HandshakeException-在具有Cpanel的自定义服务器上使用Laravel Websockets的Flutter应用

时间:2019-12-13 14:05:03

标签: laravel flutter websocket

我有Laravel Web应用程序,其中包括依赖Laravel Websockets https://docs.beyondco.de/laravel-websockets/

的实时聊天

现在我正在为相同的服务制作Flutter应用程序,并且遇到了问题,已连接到我已经在wss上制作的websocket(我有此代码)

var channel = IOWebSocketChannel.connect("wss://site.com:6001/app/123456789");

channel.sink.add(json.encode({
  "event": "pusher:subscribe",
  "data": {"channel": "channel-name"}
}));

channel.stream.listen((_data) {
  print(_data.toString());
}, onError: (error) {
  print("Socket: error => " + error.toString());
}, onDone: () {
  print("Socket: done");
});

我遇到了这个问题:CERTIFICATE_VERIFY_FAILED,我对此进行了很多搜索,没有任何帮助-我尝试做的一件事就是制作一个SecureSocket

SecureSocket secureSocket = await SecureSocket.connect(
    'www.site.com', 6001,
    onBadCertificate : (X509Certificate cert) => true).then((SecureSocket secureSocket) {

  secureSocket.listen((List<int> event) {
    print(utf8.decode(event));
  });

}).catchError((error) {
  print(error);
});

此代码没有返回错误,但根本没有连接。

注意:相同的代码可在ios模拟器上运行,但不能在android上

我也测试了我的ssl证书,它显示了以下结果: https://ibb.co/chyFPtX

请有人能帮助我解决此问题吗?

1 个答案:

答案 0 :(得分:0)

laravel websockets连接支持推送器驱动程序,请尝试使用pusher client来代替它已经内置了协议。