socket.io-client 后台消息包含中文连接断开,请问有人遇到过吗
在实际项目中是第一次收到包含中文消息时连接中断,重连后正常,为了提问我把相关代码提取出来发现前端一收到含中文消息就不断报错重连了
server
import http from 'http';
import socket from 'socket.io';
const server = http.createServer();
const io = socket(server);
io.on('connection', (client) => {
console.log('SOCKET->connection:' + client.id);
client.on('message', async function (message) {
console.log(message);
client.send({message: 'success'})
});
client.on('disconnect', async function () {
console.log('SOCKET->disconnect:' + client.id);
});
});
server.listen(3001);
console.log('server running http://localhost:3001');
client
import io from 'socket.io-client';
const socket = io('ws://localhost:3001');
socket.on('connect', () => {
console.log('connect');
socket.send({message: 'hello'})
});
socket.on('disconnect', () => {
console.log('disconnect')
});
socket.on('error', err => {
console.log(err)
});
socket.on('message', res => {
console.log(res)
});
此时是英文消息是正常的
][2]][1]
可是一旦把服务器的
client.send({message: 'success'})
替换成包含中文的
client.send({message: '你好'})
立刻就崩溃了,前端不断的报错重连
socket.io
socket.io-client
都已升级到 2.1.1
有大神知道什么原因吗
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(2)
从早上发现这个问题一直在找原因,结果刚才试了下用传统的标签引用
居然不报错了,我真的相当无语,一整天时间浪费在这上面
我看socket.io里有关于中文的issue,issue,没有很好的解决办法
建议通过编解码进行收发,或者通过buffer