React Native 和使用 websockets
Posted
技术标签:
【中文标题】React Native 和使用 websockets【英文标题】:React Native and using websockets 【发布时间】:2016-03-24 15:30:15 【问题描述】:我有 react-native@0.17 这样的代码
import React, AsyncStorage, Component, View, Text, WebView, WebSocket from 'react-native';
import Avatar, Divider, Subheader, COLOR from 'react-native-material-design';
export default class Avatars extends Component
_setWebSocket = (endpoint, sessionToken) =>
const ws = new WebSocket('wss://' + endPoint + '/api/live?authToken=' + sessionToken);
console.log('Setting socket: ' + 'wss://' + endpoint + '/api/live?authToken=' + sessionToken);
我正在从以下位置调用代码:
componentDidMount()
this._setWebSocket(endpoint, token);
我在尝试让 WebSockets 作为代码工作时遇到问题:
console.log('Setting socket: ' + 'wss://' + endpoint + '/api/live?authToken=' + sessionToken);
从不触发。如果我在创建新的 WebSocket 之前放置控制台日志,它就会运行。我做错了什么以及如何调试,因为 chrome 没有结合 Genymotion 显示有用的信息。
【问题讨论】:
您是否使用 Genymotion 上下文菜单中的“远程调试 JS”?如果没有,请在控制台中输入adb logcat *:S ReactNative:V ReactNativeJS:V
以查看日志
我的代码成功实例化了一个 WebSocket,但由于未知原因触发了它的 onerror
处理程序:/
最终使用了 socket.io,它工作正常 :)
【参考方案1】:
问题很容易找到,可能我很累
import React, AsyncStorage, Component, View, Text, WebView, WebSocket from 'react-native';
我将 WebSocket 导入,但这是本机模块... 因此,从导入依赖项中删除 WebSocket 会有所帮助。
【讨论】:
如果其他人像我一样卡在这个问题上,请完全删除WebSocket
导入。它是全局的,根本不需要导入。 @Marceli 你能从这个答案中删除这行代码吗?这有点误导。谢谢!
@LaneRettig +1 同意以上是关于React Native 和使用 websockets的主要内容,如果未能解决你的问题,请参考以下文章
使用 react-native-pdf 在 react-native 上获取准确的 x 和 y 坐标
React-native:如何在 React-native 中使用(和翻译)带有 jsx 的 typescript .tsx 文件?
react-native字体react-native-vector-icons在ios下的使用