Socket.io: 在 socket.io 上使用轮询时获取 HTTP Header 400

创建于 2015-04-22  ·  4评论  ·  资料来源: socketio/socket.io

你好,

在 socket.io 上使用轮询时,我得到了很多 400 个 HTTP 标头。
我正在使用 nodejs 集群:
这是代码片段:

如果(cluster.isMaster){
// 分叉工人。
//numCPUs=1;
for (var i = 0; i < numCPUs-1; i++) {
集群.fork();
}
}
//工人代码:
别的{

var socket_io = require('socket.io')(server);
var redis_adapter = require('socket.io-redis');
socket_io.adapter(redis_adapter({ host: config.redis.ip, port: config.redis.port }));

//剩下的代码
socket_io.on('connection', function (socket) {

}

这方面的任何指针都会有所帮助。

提前致谢

Closed due to inactivity

最有用的评论

你好! 我在使用 socket.io 设置集群时遇到了很多麻烦,因为没有很多示例。 我有一个工作示例,用于控制一些树莓派

https://github.com/jordanpappas/raspi-car/tree/master/server

我真的需要做一个单独的例子来展示如何让它工作,但现在你可以查看链接中的索引文件。 为了让它发挥作用,您必须确保做一些事情。

  1. 使用 redis(您似乎已经这样做了,因此将适配器连接方式与我的示例进行比较)
  2. 仅使用 websocket。 对于客户端和服务器都是如此。 您遇到的这些错误与轮询有关,所以不要使用它。 这样做
var io = sio(server, { 'transports': ['websocket'] });

在客户端:

var socket = io.connect('http://localhost:3000', { 'transports': ['websocket'] });

这应该会让你朝着正确的方向前进,我将一起制作一个简单的例子。

所有4条评论

你好! 我在使用 socket.io 设置集群时遇到了很多麻烦,因为没有很多示例。 我有一个工作示例,用于控制一些树莓派

https://github.com/jordanpappas/raspi-car/tree/master/server

我真的需要做一个单独的例子来展示如何让它工作,但现在你可以查看链接中的索引文件。 为了让它发挥作用,您必须确保做一些事情。

  1. 使用 redis(您似乎已经这样做了,因此将适配器连接方式与我的示例进行比较)
  2. 仅使用 websocket。 对于客户端和服务器都是如此。 您遇到的这些错误与轮询有关,所以不要使用它。 这样做
var io = sio(server, { 'transports': ['websocket'] });

在客户端:

var socket = io.connect('http://localhost:3000', { 'transports': ['websocket'] });

这应该会让你朝着正确的方向前进,我将一起制作一个简单的例子。

当然,谢谢。我解决了这个问题。我在集群工作者中使用了粘性会话库,这是错误的,因为库本身会创建工作者。

该问题已自动关闭。 请检查您的问题是否已在最新版本中得到解决,并在需要时重新打开(如果可能,请使用小提琴重现问题)。

在这个问题上浪费 4 个小时

此页面是否有帮助?
0 / 5 - 0 等级

相关问题

thebinarypenguin picture thebinarypenguin  ·  4评论

MyMomSaysIAmSpecial picture MyMomSaysIAmSpecial  ·  4评论

adammw picture adammw  ·  4评论

kootoopas picture kootoopas  ·  4评论

renkei picture renkei  ·  4评论