【问题标题】:Websocket Error: Error during WebSocket handshake: No response code found in status lineWebsocket 错误:WebSocket 握手期间出错:在状态行中找不到响应代码
【发布时间】:2014-07-18 03:05:00
【问题描述】:

我想与我的服务器建立一个 tcp 连接。 但是我每次都会出错...

到 'ws://my.ip:1337/' 的 WebSocket 连接失败:WebSocket 握手期间出错:在状态行中找不到响应代码:Echo 服务器

客户:

 var connection = new WebSocket('ws://my.ip:1337'); 
 connection.onopen = function () {
 connection.send('Ping'); // Send the message 'Ping' to the server
 };

服务器:

   var net = require('net');
   var server = net.createServer(function (socket) {
   socket.write('Echo server\r\n');
   socket.pipe(socket);
   console.log('request');
   });
   server.listen(1337, 'my.ip');

怎么了?

【问题讨论】:

    标签: javascript node.js websocket


    【解决方案1】:

    net.createServer 创建一个普通的 TCP 服务器,而不是一个 websocket 服务器。 Websockets 使用基于 TCP 的特定协议,普通的 TCP 服务器不遵循该协议。浏览器成功地通过 TCP 进行网络级连接,但随后它期望 websocket 握手紧随其后,普通 TCP 服务器不知道如何提供。

    要让您的 Node.js 服务器侦听 websocket 连接,请使用 ws module

    var WebSocketServer = require('ws').Server
      , wss = new WebSocketServer({port: 1337});
    wss.on('connection', function(ws) {
        ws.on('message', function(message) {
            ws.send('this is an echo response; you just said: ' + message);
        });
        ws.send('send this message on connect');
    });
    

    【讨论】:

      猜你喜欢
      • 2014-05-15
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2014-10-22
      • 1970-01-01
      • 2019-09-06
      • 2018-01-21
      • 2019-01-19
      相关资源
      最近更新 更多