【发布时间】:2012-03-21 03:01:35
【问题描述】:
我正在尝试将 websocket 从 chrome 17 扩展连接到本地 nodejs 服务器。创建后
var websocket = new WebSocket("ws://localhost:7055");
成功创建 websocket 实例后,我立即收到 onClose 事件。
检查是否支持 websocket 为真。
if(窗口中的“WebSocket”) log("这里支持 Websockets");
这里有什么问题?我希望任何人都可以帮助我解决这个问题。
浏览器一般都能运行websockets,我测试过 与
http://websocket.org/echo.html
“Dark WebSocket Terminal”(Google 扩展)也显示相同 连接到 ws://localhost:7055/ 的行为
我也试过 ws://127.0.0.1:7055/,结果一样
客户端代码(Chrome 17 扩展)
runSockets("ws://localhost:7055");
function runSockets(wsUri) {
if ("WebSocket" in window)
log("Websockets are supported here ");
var websocket = new WebSocket(wsUri);
log("Web Socket created with the state "+ websocket.readyState);
websocket.onopen = function(evt) { onOpen(evt) };
websocket.onclose = function(evt) { onClose(evt) };
websocket.onmessage = function(evt) { onMessage(evt) };
websocket.onerror = function(evt) { onError(evt) };
}
function onOpen(evt) {
log("CONNECTED");
doSend("WebSocket connected");
}
function onClose(evt) {
log("DISCONNECTED");
}
function onMessage(evt) {
log("RESPONSE: " + evt.data);
websocket.close();
}
function onError(evt) {
log("ERROR: " + evt.data);
}
function doSend(message {
log("SENT: " + message);
websocket.send(message);
}
服务器代码(nodejs v0.6.11)
var http = require('http');
http.createServer(function (req, res) {
res.writeHead(200, {'Content-Type': 'text/plain'});
res.end('Hello World\r\n');
}).listen(7055, 'localhost');
console.log('Server running at http://localhost:7055/');
【问题讨论】:
标签: node.js google-chrome-extension websocket