接收UTF8字符时服务器断开连接

时间:2018-01-17 21:45:44

标签: node.js socket.io

我发现如何解决这个问题,我只是将它们降级到版本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
});

1 个答案:

答案 0 :(得分:0)

您可以执行以下操作来验证(证明)socket.io适用于Linux上的非英文字符

按照此处的入门部分进行操作: https://socket.io/get-started/chat/

总结一下从终端运行以下内容

  1. git clone https://github.com/socketio/chat-example.git
  2. cd chat-example
  3. npm install
  4. node index.js
  5. 打开Web浏览器并导航到localhost:3000

    尝试使用底部的聊天栏和非英语章程 - 它会正常工作。

    现在关于你的问题。如果某些东西不适合您,可能是由于您的代码和滥用api。 按照这里的文档: https://github.com/socketio/socket.io/blob/master/docs/README.md

相关问题