WebSocketを使用してnode.jsと通信するためにWebページに会おうとしています。私は今数時間試していますが、何が悪いのかわかりません。
サーバ
var net = require('net');
var server = net.createServer(function (socket) {
var handsShaked=false;
socket.on('data', function(data) {
if(!handsShaked){
data=(data+"").split("\r").join("").split("\n");
var key=null;
for(i in data){
if(data[i].indexOf("Sec-WebSocket-Key:")===0)
key=data[i].split(":")[1].split(" ").join("");
}
var magic = "258EAFA5-E914-47DA-95CA-C5AB0DC85B11";
var sha = sha1(key+magic);
var accept = new Buffer(sha).toString('base64');
socket.write(
"HTTP/1.1 101 Switching Protocols\r\n"+
"Upgrade: websocket\r\n"+
"Connection: Upgrade\r\n"+
"Sec-WebSocket-Accept: "+accept+"\r\n"
);
handsShaked=true;
}
socket.write("test");
});
});
server.listen(10666);
クライアント
socket = new WebSocket("ws://localhost:10666");
socket.onopen=function(){
console.log('open');
socket.send('Dit is een test');
}
socket.onmessage=function(msg){
console.log('msg');
alert(msg);
}
socket.onerror = function (error) {
console.log('error');
alert('WebSocket Error ' + error);
};
なぜそれが機能しないのか誰かが知っていますか?