注册账号登录
吴世剑
小度鱼作者,野生设计师,野生程序员。
关注

在ReactNative使用WebSocket的时候,遇到一个小坑,记录一下解决方法

使用如下方式连接WebSocket的时候,会连接失败,出现 Stream end encountered 错误

const ws = new WebSocket('ws://localhost:3000');
ws.onclose = (e) => {
// 这里会出现 1001 "Stream end encountered" 错误
console.log(e.code, e.reason);
}

解决方法是,需要连接地址末尾需要加上 /socket.io/?EIO=4&transport=websocket

const ws = new WebSocket('ws://localhost:3000/socket.io/?EIO=4&transport=websocket');

完整例子如下

const ws = new WebSocket('ws://localhost:3000/socket.io/?EIO=4&transport=websocket');

ws.onopen = () => {
console.log('连接成功');
}

ws.onmessage = (e) => {
// 接收到了一个消息
console.log(e.data);
}

ws.onerror = (e) => {
// 发生了一个错误
console.log(e.message);
}

ws.onclose = (e) => {
// 连接被关闭了
console.log(e.code, e.reason);
}
吴世剑
小度鱼作者,野生设计师,野生程序员。
关注私信
308
关注
107
粉丝
158
帖子