flutter - 无法将 Flutter 连接到 laravel-websocket 服务器
问题描述
我已经尝试将我的 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 代客服务器。
解决方案
推荐阅读
- c - 在 C 中声明指向字符串的指针数组有什么缺点?
- azure-active-directory - 如何自动化需要 MFA 身份验证器代码的 Azure AD 身份验证?
- java - 使用 JGraphT 检测具有相同优先级的顶点的拓扑排序
- sql - 将选择/排除联合保存到临时表中
- mysql - MySQL基于另一个大表更新大表太慢
- r - 在 R 中计算和附加数据框中选择列的列总计
- java - 如何让我的组件使用 JFrame Netbeans 正确调整大小?
- https - 自定义节点服务器导致 Nextjs 无法加载 'No `pages` directory found'
- php - 您可以使用 IAM 策略在 Laravel 应用程序上通过 SES 授权 AWS ECS Fargate 吗?
- teamcity - 如何在 TeamCity 构建状态窗口中显示自定义页面输出