Socket.io: Obtendo HTTP Header 400 ao usar polling no socket.io

Criado em 22 abr. 2015  ·  4Comentários  ·  Fonte: socketio/socket.io

Oi,

Estou recebendo muitos 400 cabeçalhos HTTP ao usar a sondagem no socket.io.
Estou usando o cluster nodejs:
Aqui está o trecho de código:

if (cluster.isMaster) {
// Trabalhadores de garfo.
//numCPUs=1;
for (var i = 0; i < numCPUs-1; i++) {
cluster.fork();
}
}
//código do trabalhador:
senão{

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

//resto do código
socket_io.on('conexão', function (soquete) {

}

Qualquer ponteiro nesse sentido será útil.

Desde já, obrigado

Closed due to inactivity

Comentários muito úteis

Oi! Tive muitos problemas para configurar um cluster com socket.io, pois não há muitos exemplos. Eu tenho um exemplo de trabalho que uso para controlar alguns raspberryPi em

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

Eu realmente preciso fazer um exemplo separado para mostrar como fazer isso funcionar, mas por enquanto você pode conferir o arquivo de índice no link. Há algumas coisas que você precisa ter certeza de fazer para que isso funcione.

  1. Use redis (você já parece estar fazendo isso, então compare como você conectou o adaptador ao meu exemplo)
  2. Use apenas websockets. Isso vale tanto para os clientes quanto para o servidor. Esses erros que você está recebendo têm a ver com o material de pesquisa, então não o use. Faça assim
var io = sio(server, { 'transports': ['websocket'] });

e no cliente:

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

Isso deve fazer com que você se mova na direção certa, e vou trabalhar para obter um exemplo simples.

Todos 4 comentários

Oi! Tive muitos problemas para configurar um cluster com socket.io, pois não há muitos exemplos. Eu tenho um exemplo de trabalho que uso para controlar alguns raspberryPi em

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

Eu realmente preciso fazer um exemplo separado para mostrar como fazer isso funcionar, mas por enquanto você pode conferir o arquivo de índice no link. Há algumas coisas que você precisa ter certeza de fazer para que isso funcione.

  1. Use redis (você já parece estar fazendo isso, então compare como você conectou o adaptador ao meu exemplo)
  2. Use apenas websockets. Isso vale tanto para os clientes quanto para o servidor. Esses erros que você está recebendo têm a ver com o material de pesquisa, então não o use. Faça assim
var io = sio(server, { 'transports': ['websocket'] });

e no cliente:

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

Isso deve fazer com que você se mova na direção certa, e vou trabalhar para obter um exemplo simples.

Claro, obrigado. Eu resolvi o problema. Eu estava usando a biblioteca de sessão fixa dentro do trabalhador do cluster, o que está errado, pois a própria biblioteca cria os trabalhadores.

Esse problema foi encerrado automaticamente. Verifique se o problema foi corrigido com a versão mais recente e reabra se necessário (com um violino reproduzindo o problema, se possível).

Desperdice 4 horas neste problema

Esta página foi útil?
0 / 5 - 0 avaliações