【问题标题】:/socket.io/?EIO=3 not found. 404/socket.io/?EIO=3 未找到。 404
【发布时间】:2018-09-10 12:12:02
【问题描述】:

我将 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")

浏览器抛出以下错误。

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...

我已尝试解决此post。没有运气。

【问题讨论】:

    标签: node.js express socket.io


    【解决方案1】:

    在socket.io的io()接口中,你在那里传递的路径不作为URL上的路径。它用作您要连接的命名空间。如果要指定自定义路径,则需要使用单独的参数:

    var socket = io("https://server.com", {path: "/chatApp/socket.io"});
    

    如果这仍然不能准确地为您提供所需的内容,请检查 socket.io 正在使用的 URL(查看 Chrome 调试器的网络选项卡以查看它),然后相应地调整路径参数。

    这是path 选项的socket.io 文档参考:https://github.com/socketio/socket.io-client/blob/master/docs/API.md#with-custom-path

    注意路径的/socket.io 部分是必需的,这样服务器才能正确识别socket.io 请求。

    【讨论】:

      猜你喜欢
      • 2017-02-25
      • 2017-09-04
      • 2020-11-24
      • 1970-01-01
      • 2016-03-08
      • 2017-06-04
      • 1970-01-01
      • 2021-07-09
      • 1970-01-01
      相关资源
      最近更新 更多