WebSocketChannelException: HandshakeException - Flutter 应用程序与自定义服务器上的 Laravel Websockets 使用 Cpanel 验
Posted
技术标签:
【中文标题】WebSocketChannelException: HandshakeException - Flutter 应用程序与自定义服务器上的 Laravel Websockets 使用 Cpanel 验证【英文标题】:WebSocketChannelException: HandshakeException - Flutter app with Laravel Websockets on custom server Cerificated with Cpanel 【发布时间】:2019-12-13 14:05:03 【问题描述】:我的 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】:laravel websockets 连接支持 pusher 驱动,尝试使用 pusher client 代替已经内置协议的。
【讨论】:
以上是关于WebSocketChannelException: HandshakeException - Flutter 应用程序与自定义服务器上的 Laravel Websockets 使用 Cpanel 验的主要内容,如果未能解决你的问题,请参考以下文章