我已经尝试将我的 Flutter 应用程序连接到 laravel-websockets 服务器近一个月了,但我仍然无法弄清楚。
我在我的 Laravel 后端使用 Beyondco Larevel Websockets,并在我的 Flutter 前端使用 pusher_client 和 laravel_echo。
我一直在尝试从我的 ios 模拟器连接到我的 Laravel 后端主机,该主机使用代客安全,但失败了。
我的颤振连接:
Echo echoSetup(token, pusherClient) {
return new Echo({
'broadcaster': 'pusher',
'client': pusherClient,
'key': DotEnv.env['PUSHER_APP_KEY'],
'wsHost': DotEnv.env['PUSHER_APP_HOST'],
'wsPort': 6001,
'disableStats': true,
// 'wssPort': 6001,
// 'forceTLS': true,
// 'auth': {
// 'headers': {'Authorization': 'Bearer $token'},
// 'Content-Type': 'application/json',
// 'Accept': 'application/json'
// },
// 'authEndpoint': "https://${DotEnv.env['PUSHER_APP_HOST']}/broadcasting/auth",
});
}
PusherClient getPusherClient(String token) {
PusherOptions options = PusherOptions(
host: DotEnv.env['PUSHER_APP_HOST'],
wsPort: 6001,
encrypted: false,
cluster: DotEnv.env['PUSHER_APP_CLUSTER'],
// wssPort: 6001,
// auth: PusherAuth(
// "https://${DotEnv.env['PUSHER_APP_HOST']}/broadcasting/auth",
// headers: {
// 'Content-Type': 'application/json',
// 'Authorization': 'Bearer ' + token
// },
// ),
);
return PusherClient(DotEnv.env['PUSHER_APP_KEY'], options,
enableLogging: true, autoConnect: false);
}
pusherClient = getPusherClient(token);
pusherClient.connect();
pusherClient.onConnectionStateChange((state) {
print(
"previousState: ${state.previousState}, currentState: ${state.currentState}");
});
pusherClient.onConnectionError((error) {
print(error.message);
});
echo = echoSetup(token, pusherClient);
echo.connect();
echo.channel(channelName).listen(eventName, (PusherEvent e) {
print("It Worked");
print(e.data);
});
我的 Flutter 应用程序似乎无法连接。如果它连接,当我启用 SSL 时它将无法工作。
请帮助我解决设置中的问题,为什么我无法从我的 Flutter 应用程序连接到运行 laravel-websocket 的 SSL 代客服务器。