Node.js /未找到socket.io/?EIO=3。404
我使用node js express和socket.io以及apache作为反向代理。下面是我的反向代理配置Node.js /未找到socket.io/?EIO=3。404,node.js,express,socket.io,Node.js,Express,Socket.io,我使用node js express和socket.io以及apache作为反向代理。下面是我的反向代理配置 ProxyPass /chatApp http://localhost:3000/ ProxyPassReverse /chatApp http://localhost:3000/ 因此,我的应用程序将通过https://server.com/chatApp。下面是如何在我的html中定义套接字 var socket = io("https://server.com/chatApp")
ProxyPass /chatApp http://localhost:3000/
ProxyPassReverse /chatApp http://localhost:3000/
因此,我的应用程序将通过https://server.com/chatApp
。下面是如何在我的html中定义套接字
var socket = io("https://server.com/chatApp")
浏览器抛出以下错误
GET https://server.com/socket.io/?EIO=3&transport=polling&t=M9zVwUq 404 (Not Found)
但是,当我在浏览器中点击下面的URL时,我得到了一些结果
https://server.com/chatApp/socket.io/?EIO=3&transport=polling&t=M9zVwUq
尽管我在html中提到了/chatApp(在定义套接字变量时),但我的应用程序并没有调用server.com/chatApp/socket.io/?EIO。。。。。它正在跳过URL中的chatApp,只需调用server.com/socket.io/?EIO
我试过解决这个问题的办法。运气不好。在socket.io的io()
接口中,您在那里传递的路径没有用作URL上的路径。它被用作要连接到的命名空间。如果要指定自定义路径,则需要使用单独的参数:
var socket = io("https://server.com", {path: "/chatApp/socket.io"});
如果这仍然不能完全满足您的需要,那么请检查URL socket.io正在使用的URL(查看Chrome调试器的“网络”选项卡以查看它),然后相应地调整path参数
以下是路径
选项的socket.io文档参考:
请注意,路径的/socket.io
部分是必需的,以便服务器能够正确识别socket.io请求。在socket.io的io()
接口中,您在那里传递的路径不会用作URL上的路径。它被用作要连接到的命名空间。如果要指定自定义路径,则需要使用单独的参数:
var socket = io("https://server.com", {path: "/chatApp/socket.io"});
如果这仍然不能完全满足您的需要,那么请检查URL socket.io正在使用的URL(查看Chrome调试器的“网络”选项卡以查看它),然后相应地调整path参数
以下是路径
选项的socket.io文档参考:
注意,路径的/socket.io
部分是必需的,以便服务器能够正确识别socket.io请求