jrt*_*hib 4 javascript sockets websocket node.js socket.io
让我解释一下我的设置。我有多个域名,它们都是主域名的 CNAME 记录,例如 example.com。
example.com -> 服务器IP
company1.example.com -> example.com
company2.example.com -> example.com
我基本上正在开发我们软件的白标版本,该软件只是检测引荐来源网址并知道要加载哪些徽标和样式表资源。
所以这一切都很好,但是当 socket.io 尝试与它的 url 握手时,它看起来像http://company1.example.com/socket.io/1/?key=123456,请求会挂起在待处理状态登录应用程序时注明。在主域 example.com 上,一切都进展顺利。不同之处在于,主域将 cookie 发送到 socket.io 握手 URL,而公司子域则不然。
有人对如何解决这个问题有任何想法吗?它似乎甚至没有到达服务器,几分钟后,待处理的请求返回它无法完成。
我也遇到了类似的问题,发现问题出在我使用的 JS 客户端上。我通过添加withCredentials: true到我的连接配置解决了这个问题。
这是它的样子
import io from "socket.io-client";
const connectionObject = {
...,
withCredentials: true,
};
socket = io("http://127.0.0.1:5000" || "", connectionObject);
Run Code Online (Sandbox Code Playgroud)
这将 Cookie 添加到对我的套接字服务器的调用中。
| 归档时间: |
|
| 查看次数: |
6506 次 |
| 最近记录: |