@Alino4ka

Socket.io не хочет слать emit сразу подключения, это баг?

Хочу сделать так: при подключении пользователь отправляет emit с определенными данными.
Вроде бы все верно, НО первый emit просто не отправляется во frames пусто, второй отлично проходит.
Это баг socket.io или что?

<script>
    $(document).ready(function(){
      var socket = io.connect('localhost:81');

      socket.on('connect',function(){
          console.log('Подключение к серверу успешно!');
          socket.emit('test1','data1');
          socket.emit('test2','data2');
      });

    });
</script>
  • Вопрос задан
  • 279 просмотров
Решения вопроса 1
SagePtr
@SagePtr
Еда - это святое
На стороне сервера убедились, что не приходит?
Дело в том, что socket.io пробует несколько "транспортов" - сначала polling, затем websocket. Так как polling обычно срабатывает, первый пакет передаётся через него, через вебсокет передаются уже последующие, потому первый не будет там фигурировать, он был отправлен ранее.
Можно отключить транспорты кроме вебсокета, вторым параметром:
var socket = io.connect('localhost:81', {transports: ['websocket'], upgrade: false});
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы