深入浅出node js websocket章节,服务端实现websocket 解析,感觉书中代码不全,求贴出

下面是我的代码,node 实现有问题,麻烦给出,谢谢

浏览器代码:

 <script>
        var ws = new WebSocket("ws:localhost:5000");

        ws.onopen = function () {
            console.log("open");
        }

        ws.onmessage = function (e) {
            console.log(e.data);
        }
    </script>

node:

import * as http from "http";
import * as crypto from "crypto";
import * as net from "net";

var server = http.createServer(function (req, res) {
    res.writeHead(200, { 'Content-Type': "text/plain" });
    res.end("hello");
});

server.listen(5000);


server.on("upgrade", function (req, socket, upgradeHead) {
    console.log("upgrade");

    var key = req.headers["sec-websocket-key"];
    var shasum = crypto.createHash("sha1");
    key = shasum.update(key + "258EAFA5-E914-47DA-95CA-C5ABoDC85B11").digest("base64");

    var headers = [
        "HTTP/1.1 101 Switching Protocols",
        "Upgrade:websocket",
        "Connection:Upgrade",
        "Sec-WebSocket-Accept:" + key,
        "Sec-WebSocket-Protocol:chat"
    ];
    socket.setNoDelay(true);
    socket.write(headers.join("\r\n"));
});
阅读 1.9k
推荐问题