使用 websockets 和 node.js 的 Web 应用程序



我是HTML5和node.js的新手。我正在尝试创建一个非常基本的客户端-服务器应用程序。这是代码。

服务器端(节点.js(:

var net = require('net');
var server = net.createServer(function(c) {
    console.log('client connected');
    c.setEncoding('utf8');
    c.on('end', function() {
        console.log('client disconnected');
    });
    c.on('data', function(data) {
        console.log(data);
        c.write("Got it");
    });
});
server.listen(9998);

客户端(网络套接字(:

<!DOCTYPE html>
<html>
    <head>
        <script>
            try {
                var ws = new WebSocket('ws://127.0.0.1:9998');
                ws.onopen = function() {
                    ws.send("Message to send");
                    alert("Message is sent...");
                };
                ws.onmessage = function (evt) { 
                    var message = evt.data;
                    alert("Message is received: " + message);
                };
                ws.onclose = function() { 
                    alert("Connection is closed..."); 
                };
            } catch (err) {
                alert(err.message);
            }
        </script>
    </head>
    <body>
    </body>
</html>
据我了解,客户端应该连接到服务器,发送">

消息发送",服务器应该回复"知道了"。相反,服务器收到的是客户端 html 页面的 http GET 请求,并且不会触发任何客户端回调。我错过了什么?

你错过了WebSocket的重点,它的TCP而不是原始TCP,要建立连接,客户端必须首先发送HTTP请求,然后服务器将协议切换到websockets,但请记住websocket不是原始TCP,数据包和其他中有自定义标头。

为了节省一些时间,请尝试 https://github.com/LearnBoost/Socket.IO/或其他 websocket 库 https://github.com/joyent/node/wiki/Modules。

相关内容

  • 没有找到相关文章

最新更新