2011-08-16 93 views
0

我想在這裏使用pusherapp,但是鉻的控制檯只是給了我「在連接建立之前WebSocket已關閉」。我的JS在下面,關於什麼可能是問題的任何想法?Pusherapp/Websocket未連接

<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

當你console.log「pusher_key」和「pusher_channel」的屬性是否正確? – Shakakai

+0

是的,他們都顯示正確的值 –

回答

0

問題是詢問以下錯誤的原因:

WebSocket is closed before the connection is established.

這實際上是由當試圖關閉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對象上。
+0

這個答案是可悲的缺少很多的上下文,因此無法使用。 – Obie

+1

@Obie希望更新能夠澄清事情並使答案更有用。 – leggetter