下面是我的代码,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"));
});