我发现如何解决这个问题,我只是将它们降级到版本1.4.0,现在它工作正常。
当通过Socket.IO发送UTF8字符时,它会立即断开连接,例如:á,è,é,ç
我试图通过替换所有字符串来避免这种情况,但我处于不再有效的位置
运行Ubuntu 16.04 Socket.io@2.0.4 Socket.io-client@2.0.4
发送特殊字符后出错:WebSocket在建立连接之前关闭。
我在聊天中发送'É'时发生错误
客户端
sendMessage: function(message) {
if (message === '') return;
if (this._lastMessage > (Date.now() - this._chatCooldown * 1000)) {
notify('error', vsprintf(locale.chatCooldown, [((this._lastMessage - (Date.now() - (this._chatCooldown * 1000))) / 1000).toFixed(1)]));
return;
}
this._input.val('');
this._lastMessage = Date.now();
socket.emit('chat message', {'type': 'chat', 'message': message});
}
服务器端
chat.message = chat.message.replace(/<\/?[^>]+(>|$)/g, "");
var uniqueID = generate(20);
io.sockets.emit('chat message', {
message: chat.message,
profile: {
avatar: user.avatar,
rank: user.rank,
username: user.username
},
time: time(),
uniqueID: uniqueID
});
答案 0 :(得分:0)
您可以执行以下操作来验证(证明)socket.io适用于Linux上的非英文字符
按照此处的入门部分进行操作: https://socket.io/get-started/chat/
总结一下从终端运行以下内容
打开Web浏览器并导航到localhost:3000
尝试使用底部的聊天栏和非英语章程 - 它会正常工作。
现在关于你的问题。如果某些东西不适合您,可能是由于您的代码和滥用api。 按照这里的文档: https://github.com/socketio/socket.io/blob/master/docs/README.md