我正在尝试使用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>
答案 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)