gpt4 book ai didi

node.js - socket.io 忽略 url 路径似乎会导致轮询 GET 404 错误

转载 作者:太空宇宙 更新时间:2023-11-04 03:08:29 25 4
gpt4 key购买 nike

我正在尝试使用 node.jssocket.io 运行聊天脚本。我已关注the tutorial on the socket.io website并让它在我的本地 Windows Node 服务器 http://localhost:3000 上运行就很好。

现在我将项目转移到网络服务器,它将使用端口 54321。因为服务器正在运行 Apache Web 服务器,所以我需要使用 .htaccess 文件将请求重定向到 node.js 服务器:

RewriteEngine On
RewriteRule ^chat/(.*) http://localhost:54321/$1 [P]

所以我的聊天脚本可以在 http://www.examle.com/chat/

该网站将在浏览器中正常打开,所有 HTML 都在那里。然而,socket.io 功能不起作用。控制台(浏览器、客户端)显示以下错误消息:

GET http://www.example.com/socket.io/?EIO=3&transport=polling&t=1439208895332-0 404 File not found

我在这里看到过类似的问题,也有同样的 404 问题。答案主要是关于服务器 index.js 中变量的正确顺序。我尝试了这些解决方案只是为了确定,但它们没有帮助。因为该脚本确实可以在我的本地服务器上运行(网址中没有任何子目录),所以我认为它可能有所不同。奇怪的是,客户端 socket.io 脚本似乎忽略了请求中的子目录 /chat/ 。如果我尝试手动打开包含 /chat/ 的 GET 请求中的 URL,它确实会给我回复!

http://www.example.com/chat/socket.io/?EIO=3&transport=polling&t=1439208895332-0

这会起作用!

但是我怎样才能让socket.io真正使用正确的路径/url来处理它的请求呢?

最佳答案

在客户端,您可以将路径设置为选项:

var socket = io('http://example.com', {path: '/chat/socket.io'});

关于node.js - socket.io 忽略 url 路径似乎会导致轮询 GET 404 错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31919485/

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