React Native 和 Websockets (sockets.io) 的 XMLHttpRequest 错误

Posted

技术标签:

【中文标题】React Native 和 Websockets (sockets.io) 的 XMLHttpRequest 错误【英文标题】:XMLHttpRequest error with React Native and Websockets (sockets.io) 【发布时间】:2017-05-10 11:51:22 【问题描述】:

我无法让 React-Native 与 sockets.io 一起工作。我有一个运行 sockets.io 的服务器,并且想通过 React-Native 的(android 版本)连接到该服务器。但是,我目前在执行时遇到以下错误:

\node_modules\react-native\Libraries\Core\ExceptionsManager.js:63 Failed to set the 'responseType' property on 'XMLHttpRequest': The response type cannot be set after the request has been sent.

我不确定要粘贴什么相关代码,因为它并没有真正让我知道它失败的地方,我也没有在任何地方自己直接调用 XMLHttpRequest,但我想这是因为它转换了套接字 io 连接到 XMLHttp。虽然我不能 100% 确定这一点,而且这只是我在网上学到的东西,但对我来说这是一个相当新的话题。

谁能提供一些对此的见解?

这是完整的堆栈跟踪:

【问题讨论】:

错误是截断这来自哪个库。这些信息可以帮助我们帮助您。 完全正确,我太傻了。更新并添加了完整的堆栈跟踪:) 【参考方案1】:

对于后代来说,这就是解决方案。 我不得不改变:

const socket = io.connect(`$BASECONNECTION:$PORT`);

到:

const socket = io(`$BASECONNECTION:$PORT` , transports: ['websocket'] );

【讨论】:

以上是关于React Native 和 Websockets (sockets.io) 的 XMLHttpRequest 错误的主要内容,如果未能解决你的问题,请参考以下文章

[mqqt vs mqtt over web native in react native

使用 Native Sockets 在 Android 中实现 WebSockets

通过 websockets 向聊天组件(react.js)添加消息

使用 React / Websockets 渲染用户数

react-native init 指定 react 版本和 react-native 版本

React-Native 和 Expo:create-react-native-app 和 react-native init 之间的区别