Pusherapp / Websocket无法连接

时间:2011-08-16 01:17:41

标签: websocket

我正在尝试使用pusherapp,但chrome的控制台只是让我“在建立连接之前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 :(得分:0)

问题是询问出现以下错误的原因:

  

在建立连接之前关闭WebSocket。

这实际上是一个通用的WebSocket错误,当尝试在连接建立之前关闭WebSocket连接(通过调用webSocketInstance.close())时,浏览器会记录该错误。

错误由Pusher JavaScript库尝试关闭连接触发,但是由错误的网络或浏览器条件(例如在线/离线报告)引起。所有所有情况(我都知道)Pusher JavaScript库将重试连接,直到解决了这些连接(例如,恢复了Internet连接)。

更多信息和以下答案中的示例:

What does "WebSocket is closed before the connection is established" mean?

上述代码中的几点:

  • Pusher构造函数具有第一个参数,即应用程序密钥。第二个参数是键值选项的映射。因此,您不应该将通道名称作为第二个参数传递。有关Pusher constructor here
  • 的更多信息
  • pusher.bind调用实际上已弃用(文档正在更新)。对于频道事件,您应该使用channel.bind直接在频道上绑定,对于连接事件,您应该绑定在Pusher.connection对象上。

答案 1 :(得分:0)

  1. 如果互联网连接太慢或断开连接,可能会发生这种情况。
  2. 交叉检查pusher Credentials。
  3. 您在推送频道应用中有群集,请务必在代码中写下。