我試圖寫一段代碼來打開網絡套接字。無法打開網絡套接字
var ws = null;
var close = function() {
if (ws) {
console.log('closing ...');
ws.close();
}
}
var onOpen = function() {
console.log('opening...');
ws.send('hello. im connected');
};
var onClose = function() {
console.log('closed');
};
var onMessage = function(event) {
var data = event.data;
console.log('message: ' + data);
};
close();
var url = 'ws://localhost:9999';
ws = new WebSocket(url);
ws.onopen = onOpen;
ws.onclose = onClose;
ws.onmessage = onMessage;
console.log('ws: ' + ws);
if (ws)
{
console.log('url:' + ws.url);
console.log('readyState:' + ws.readyState);
ws.send(msg);
}
else
alert('no ws');
但看到控制檯時,readyState的是不斷被「連接」,這將導致插座的send()命令拋出異常。
我試着擴展https://chrome.google.com/extensions/detail/pfdhoblngboilpfeibdedpjgfnlcodoo並得到同樣的問題。服務器非常簡單,接受傳入的套接字並寫出到控制檯。
有最初的手在抖,但客戶的readyState仍然保持爲0。
下面是手抖:
GET/HTTP/1.1
Upgrade: WebSocket
Connection: Upgrade
Host: localhost:9999
Origin: http://localhost:8080
Sec-WebSocket-Key1: Qb 15 05 6 Gq 9 26 u0 6
Sec-WebSocket-Key2: 8096 C0587|7.
我是否有特定的服務器中的任何東西,讓客戶打開?
謝謝你們。
您是否解析服務器端的握手並從兩個密鑰中發回哈希? – 2010-11-17 10:10:05
你覺得你的問題已經得到了充分的回答嗎? (如果是的話,你可以選擇一個答案)。如果沒有,我們可以幫助您解決您的問題嗎? – kanaka 2010-11-22 15:51:26