2014-11-12 12 views
7

Websocket raylarıyla çalışmaya başladım, eski bir yoklama sistemini bildirimlere dönüştürmeye çalışıyorum (Ruby 2.1/Rails 4.0'da) WS ile biraz daha modern bir şey. Burada hiçbir iletişim sorunları var gibi görünüyor - Ben taze Redis varsayılan bağlantı noktası üzerinde çalışan, aynı zamanda kurulum var'Geçersiz çerçeve üstbilgisi' Rails/websocket raylarıyla (bağımsız) Websocket sorunları nasıl hata ayıklanır

WebsocketRails.setup do |config| 
    config.standalone = true 
end 

: Ben bağımsız modda WebsocketRails kullanıyorum, burada temel olarak benim yapılandırma, varsayılan değerdir. İstemci tarafında

, ben WebSocket-raylar en JS eklemiş ve birlikte bir bağlantısı açmak ve bir kanala abone olmak için çalışırken:

@dispatcher = new WebSocketRails "localhost:3001/websocket" 
    @channel = @dispatcher.subscribe "notifications" 

Chrome konsolunda bir hata görebilirsiniz:

Firefox'ta
WebSocket connection to 'ws://localhost:3001/websocket' failed: Invalid frame header 

, hata farklıdır ama yine de bir hata:

The connection to ws://localhost:3001/websocket was interrupted while the page was loading. 

websocke itibaren t sunucu günlükleri, bir bağlantının başlatıldığını ve daha sonra da düştüğünü görebiliyorum, ancak başka günlükler de yok, hatta günlük seviyesi "hata ayıklaması" dır ... Görebildiğim başka bir hata yok ve çaresiz bir Google araması yok "geçersiz çerçeve başlığı" ile ilgili hiçbir şey getiremiyorum, bu yüzden çok fazla sıkışmış durumdayım.

Herhangi bir yardım için teşekkür ederiz!

DÜZENLEME: Hareket halindeyken hareket etmek için NodeJS + Faye'i kullanıyorum ve bu yeni hareketli parçayı sistemde tanıtmaktan mutluluk duyuyorum. Eminim ki sorun, özel kurulumuma dayanarak sadece geçici bir şeydi, ancak bazen işleri tamamlamanız gerekiyor. Soru dizisinden

:

+0

kullanıyorsun Faye-websocket'ı ince üzerinde kullanıyorum ve tam olarak aynı durumdayım. – itdoesntwork

+0

Thin üzerinde çalışıyor. O zamandan beri güvenlik güncellemelerinden sonra Rails 4.1 ve Ruby 2.1.5 sürümlerine geçtim ve tekrar denemek için bir şansım olmadı, bir Noel mucizesi olmasını umuyorum. Etrafa baktım ve konuyla ilgili fazla bir şey bulamadım, bu yüzden sadece çok nadir bir element kombinasyonu nedeniyle bir eser olduğunu düşünüyorum. – Enders

+0

Özel bir Rails özelliği kullanmıyorsanız, muhtemelen [Plezi framework] (https://github.com/boazsegev/plezi) ile çalışmayı daha kolay bulabilirsiniz. Bunları kullanıyorsanız ActiveRecord ve ActiveSupport ile çalışmalı ve kolay Redis entegrasyonu var. – Myst

cevap

3

Aşağıdaki kaynaklar arıyoruz düşünüyorum debugging websocket in google chrome

Chrome developer tools now have the ability to list WebSocket frames and also inspect the data if the frames are not binary.

Process:

  1. Launch Chrome Developer tools
  2. Load your page and initiate the WebSocket connections
  3. Click the Network Tab.
  4. Select the WebSocket connection from the list on the left (it will have status of "101 Switching Protocols".
  5. Click the Frames sub-tab. Binary frames will show up with a length and time-stamp and indicate whether they are masked. Text frames will show also include the payload content.
2012 yılından itibaren

Orada da bu (biraz eski) Blog madde: Ne web sunucusu Inspecting WebSocket Traffic with Chrome Developer Tools

+1

Bu bağlantı soruyu yanıtlayabilirken, cevabın temel kısımlarını buraya dahil etmek ve referans için bağlantı sağlamak daha iyidir. Bağlantılı sayfa değiştiğinde yalnızca bağlantı yanıtları geçersiz olabilir. - [Yorum Yaz] (/ review/düşük kaliteli yazılar/10618602) – Blackwood

+0

@ Blackwood - Teşekkürler. Bitti :) – Myst

İlgili konular