android - 使用 websocket 的 Expo v27/v28 Android 应用程序崩溃

标签 android websocket expo

环境: Android 6 Marshmallow 和 iOS(所有版本)

错误: 使用 WebSockets 的 Android 应用因错误而崩溃:

WebSocketModule.close 有 1 个参数,预计为 3 个。

例如,当我仅在 Android 上关闭 WebSocket 连接时会发生错误:

this.ws = new WebSocket(url);
this.ws.onopen = () => {
    const command = { command: 'JOIN', room: roonHash };
    this.ws.send(JSON.stringify(command));
};

this.ws.onmessage = e => {
    //more code here
};


// Finally:
this.ws.close();

iOS: 在 iOS 上它运行良好。

我使用的是 Expo v27,但在 v28 上遇到了同样的错误。 在 Expo/React Native 团队永远修复它之前,是否有任何解决方法可以解决这个问题?

最佳答案

Expo v27

Update your React Native/Expo v27.0.0 to v27.0.2 on your package.json

Expo v28

Update your React Native/Expo v28.0.0 to v28.0.1 on your package.json

程序:

1) 转到您的 package.json 文件并更改您的 expo 版本,例如:

From:

"react-native": "https://github.com/expo/react-native/archive/sdk-27.0.0.tar.gz",

To:

"react-native": "https://github.com/expo/react-native/archive/sdk-27.0.2.tar.gz",

2)删除您的node_modules:

$ rm -rf node_modules

3)再次安装:

$ yarn 安装

关于android - 使用 websocket 的 Expo v27/v28 Android 应用程序崩溃,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51244441/

相关文章:

android - 如何在 Android 设备上使用 PhoneGap 创建文字转语音?

php - 如何远程或在服务器上运行 Ratchet?

linux - 为 libwebsocket Warmcat 安装新版本的 libtool

android - 弹出的 Expo 应用程序无法在 NativeModules 中找到自定义 native 模块

javascript - 如何取消订阅(删除监听器)React Native Expo 推送通知

react-native - 如何使用 react-navigation 的 SafeAreaView 并避开 iPhone X 上的空间?

android - 无法在外部 SD 卡 (Lollipop) 中创建目录

android - 使用共享首选项保存切换状态

Android:谷歌登录切换到其他 Activity 而不会丢失登录数据

node.js - 是否可以在 Node.js 服务器重启时保持 websockets 连接?