跨域socket.io在30秒后中断

时间:2013-10-06 18:36:47

标签: node.js socket.io cross-domain cors

我有一个简单的聊天服务器(node.js / express / socket.io),我正在从不同域的客户端访问。我已经设定了起源,允许一切有效。但是,在客户端不活动大约30秒后,它会收到错误“XMLHttpRequest无法加载[url] .Access-Control-Allow-Origin不允许使用Origin。”此时,除非我刷新页面,否则我无法再发送消息。我允许使用io.set('origins', '*:*');

来源
app.all('*', function(req, res, next) {
  res.header("Access-Control-Allow-Origin", "*");
  res.header("Access-Control-Allow-Headers", "X-Requested-With");
  next();
});.

我已经尝试了几乎所有我能想到的东西(禁用心跳,捕获错误并使用io.server.removeListener('request', io.server.listeners('request')[0]);重新连接客户端)。我知道这是一个跨域问题,因为我在本地运行时没有任何问题。有什么想法吗?

1 个答案:

答案 0 :(得分:0)

当我正在开发一个将Twitter-Streaming API用于聊天系统的项目时,我遇到了类似的问题。您面临的问题可能是由于同源政策(更多信息here

我发现大多数Apt的解决方案还有跨域Gif请求,您将在 Google Analytic Sc​​ript 中找到一个概念,概念的完整说明可以找到here

我希望你觉得这很有用。它确实为我做了工作。