Задать вопрос
@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>
  • Вопрос задан
  • 282 просмотра
Подписаться 1 Оценить Комментировать
Помогут разобраться в теме Все курсы
  • Яндекс Практикум
    Python-разработчик
    10 месяцев
    Далее
  • Skillbox
    Профессия Графический дизайнер PRO
    15 месяцев
    Далее
  • Нетология
    Фронтенд-разработчик
    11 месяцев
    Далее
Решения вопроса 1
SagePtr
@SagePtr
Еда - это святое
На стороне сервера убедились, что не приходит?
Дело в том, что socket.io пробует несколько "транспортов" - сначала polling, затем websocket. Так как polling обычно срабатывает, первый пакет передаётся через него, через вебсокет передаются уже последующие, потому первый не будет там фигурировать, он был отправлен ранее.
Можно отключить транспорты кроме вебсокета, вторым параметром:
var socket = io.connect('localhost:81', {transports: ['websocket'], upgrade: false});
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

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

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