javascript - Socket.io 未在握手中发送 cookie,导致请求停止

标签 javascript node.js sockets websocket socket.io

让我解释一下我的设置。我有多个域名,它们都是主域名的 CNAME 记录,例如 example.com。

example.com -> 服务器IP

company1.example.com -> example.com

company2.example.com -> example.com

我基本上正在开发我们软件的白标版本,该软件只是检测引荐来源网址并知道要加载哪些 Logo 和样式表资源。

所以这一切都很好,但是当 socket.io 尝试与看起来像 http://company1.example.com/socket.io/1/?key=123456 的 url 握手时,请求在登录应用程序时挂起在挂起状态。在主域 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);

这将 Cookie 添加到对我的套接字服务器的调用中。

关于javascript - Socket.io 未在握手中发送 cookie,导致请求停止,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23851603/

相关文章:

javascript - Nodejs 服务器/客户端套接字与 engine.io 连接

javascript - 如何使用 jQuery.inArray() 检查另一个数组中是否找到字符串元素数组?

javascript - jQuery 在悬停错误上向上/向下滑动

javascript - 使用 JavaScript 和 Node.js 的必应翻译 API

c++ - 从线程使用 v8 句柄失败

c - POSIX:从 UDP 套接字上的 write() 返回值

javascript - 向左/右/下不同方向滑动元素

javascript - 如何将我的 muse js 集成到我的 ionic 3 项目中

node.js - 在 heroku 中使用 nodejs 的 C++ 模块

python - MRJob: socket.error: [Errno 104] 连接被对端重置