react-native - 为什么 socket.io-client 在 React Native 中强制轮询
问题描述
我正在尝试将 socket.io-client 与本机反应一起使用,但我遇到了奇怪的行为。我正在使用 socket.io-client 版本 2.3.0 和 react native 版本 37.0.1,我的项目中也有 react-navigation 库。当我尝试将 socket.io-client 与我的 flask_socketio 服务器联机使用时,我的应用程序默认轮询作为主要传输,即使在启动连接时我添加传输:[“websocket”]。我的应用程序也无法像在我的本地服务器上一样工作。该应用程序出于某种原因是喜怒无常的。有时,如果我不断重新启动应用程序并且我让 websockets 以预期的行为工作(我正在来回发送消息,即即时消息传递),它会起作用。有任何想法吗?我用来连接的代码
UNSAFE_componentWillMount() {
let socketio = io("wss://domain.com/namespace", {
transports: ["websocket"],
pingTimeout: 30000,
jsonp: false,
});
this.setState({
socket: socketio.connect(),
});
}
编辑:我也在黄色框中收到这些警告: 1. 长时间设置计时器,即多分钟,是 Android 上的性能和正确性问题,因为它使计时器模块保持清醒,并且计时器只能是当应用程序在前台时调用。2. 无法识别的 WebSocket 连接选项agent
, perMessageDeflate
, pfx
, key
, passphrase
, cert
, ca
, ciphers
, rejectUnauthorized
. 你的意思是把这些放在下面headers
吗?
解决方案
推荐阅读
- charts - 如何在 jqplot 中自定义 Primefaces 折线图上的单个数据点?
- json - 选择和描述 json 配置单元表时失败
- wordpress - 如何在wordpress中动态获取自定义模板的菜单?
- azure - Azure 表视图的 Azure 存储资源管理器中未显示新添加的列
- java - 在java中通过循环打印许多值
- python - 将 Python 的默认数字表示设置为“十进制”
- python - 在 Python 中计算大列表标准差的更有效方法
- static - 对于计算一次然后可以在应用程序的任何地方使用的不可变对象,最合适的模式是什么?
- django - 从 PayPal Express Checkout 客户端 REST API 将变量返回到 Web 服务器
- xmpp - ejabberd.yml 为 strophe 配置注册一个新用户