Pusherapp / Websocket не подключается - PullRequest
0 голосов
/ 16 августа 2011

Я пытаюсь использовать здесь pusherapp, но консоль Chromium просто выдает мне сообщение «WebSocket закрыт до установления соединения».Мой JS ниже, есть идеи, в чем может быть проблема?

<script type='text/javascript'>
   $(document).ready(function(){
   var pusher_key = "<%= Pusher.key %>";
   var pusher_channel = "thirsty-<%= Rails.env %>";
   var pusher = new Pusher(pusher_key, pusher_channel);
   pusher.bind('push_comment', function(content) {
     comment_html = '<li><p>' + content + '</p></li>'
     $(comment_html).prependTo('#comments');
   });
});  
</script>

Ответы [ 2 ]

0 голосов
/ 03 июня 2018
  1. Это может произойти, если интернет-соединение слишком медленное или отключено.
  2. Перекрестная проверка учетных данных толкателя.
  3. Если у вас есть кластер в приложении pusher channel, убедитесь, что вы написали его в своем коде.
0 голосов
/ 17 августа 2011

Вопрос задает причину следующей ошибки:

WebSocket закрывается до установления соединения.

На самом деле это общая ошибка WebSocket, которая регистрируется браузером, когда делается попытка закрыть соединение WebSocket (путем вызова webSocketInstance.close()) до того, как соединение будет установлено.

Ошибка вызывается библиотекой Pusher JavaScript, пытающейся закрыть соединение, но вызвана плохой сетью или состоянием браузера (например, онлайн / офлайн отчеты). Во всех случаях (которые мне известны) библиотека Pusher JavaScript будет повторять попытку подключения, пока эти подключения не будут разрешены (например, восстановлено подключение к Интернету).

Дополнительная информация и пример в следующем ответе:

Что означает «WebSocket закрывается до установления соединения»?

Пара пунктов кода выше:

  • Конструктор Pusher имеет первый параметр, который является ключом приложения. Второй параметр - это карта вариантов значения ключа. Таким образом, вы не должны передавать имя канала в качестве второго параметра. Подробнее о конструкторе Pusher здесь
  • Вызов pusher.bind фактически устарел (документы обновляются сейчас). Для событий канала вы должны привязать непосредственно к каналу, используя channel.bind, а для событий соединения вы должны привязать объект Pusher.connection.
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...