gpt4 book ai didi

javascript - WebSocket 仅在本地文件 :///page 上执行时有效

转载 作者:行者123 更新时间:2023-11-30 18:47:46 25 4
gpt4 key购买 nike

我正在试验 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;

有人看到我可能做错了什么吗?

最佳答案

最后我设法解决了。

在服务器中,必须添加以下内容(* 而不是 null),当然要替换 x:

var nugget = new WebSocketServer(8887, "*", "ws://192.168.x.x:8887");

然后,在 HandshakeHandler.cs 中添加以下内容(目前最后一个条件不存在):

if (hasRequiredFields && "ws://"+ClientHandshake.Host == Location && (ClientHandshake.Origin == Origin || Origin=="*"))

感谢所有回复。

关于javascript - WebSocket 仅在本地文件 :///page 上执行时有效,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4910729/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com