【发布时间】:2011-02-06 00:34:39
【问题描述】:
我正在试验 HTML5 WebSockets,我的基本客户端/服务器场景使用 Nugget 工作。但是,它仅在我执行本地 HTML 文件 (file:///) 时有效;只要我通过http://localhost/ 执行它就会失败。
因此,从 file:/// HTML 文件连接到 localhost 是可行的,但通过 http://localhost/ 连接到 localhost 会失败。这很奇怪也很烦人,因为我希望能够在我的家庭网络中使用它。
我认为这可能是因为来源不同(不同的端口),但这不是原因,因为端口必须不同,以免Apache响应WebSocket请求。
客户端代码本身是最基本的形式:
var ws;
function wsi() {
ws = new WebSocket('ws://localhost:8887/consoleappsample');
ws.onmessage = function (evt) {
alert(evt.data);
}
}
window.onload = wsi;
有人看到我做错了什么吗?
【问题讨论】:
-
你试过检查
document.domain吗? -
对于 file:/// 文件,它返回一个空字符串(并且套接字有效),对于 localhost 它返回“localhost”(并且套接字无效)
-
你用哪个浏览器来测试这个?
-
忘了说;这是 Chrome 9。
-
你在使用 web-socket.js 吗?或者只是浏览器中的 websocket
标签: javascript html websocket