2014-11-12 14 views
7

Zaczynam od websocket-rails, próbując przekonwertować stary system pollingu na powiadomienia (w Ruby 2.1/Rails 4.0) na coś nieco bardziej nowoczesnego z WS. Używam WebsocketRails w trybie autonomicznym, tu jest moja konfiguracja, w zasadzie, domyślnie:Jak debugować "Nieprawidłowy nagłówek ramki" Problemy z siecią Web z Railsami/websocket-rails (autonomiczne)

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

Mam również konfigurację świeże Redis uruchomiony na porcie domyślnym - nie wydaje się być żadnych problemów komunikacyjnych tutaj.

Po stronie klienta, Dodałem websocket szyn JS i podczas próby otwarcia połączenia i subskrybować kanał z:

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

widzę błąd w konsoli Chrome:

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

W Firefoksie, błąd jest inny, ale nadal błąd:

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

z websocke t dzienników serwera, widzę, że połączenie zostało zainicjowane, a następnie usunięte, ale nie ma innych dzienników, nawet jeśli na poziomie dziennika jest "debugowanie" ... Nie ma innych błędów, które mogę zobaczyć, a pobieżne wyszukiwanie Google nie nie podniosą niczego, co dotyczy "nieprawidłowego nagłówka ramki", więc jestem prawie zablokowany.

Każda pomoc zostanie doceniona!

EDIT: skończyło się używając NodeJS + Faye dostać rzeczy ruchomych, i to działa tak dobrze, że jestem szczęśliwy, że wprowadzenie tej nowej części ruchomej w systemie. Jestem pewien, że problem był po prostu czymś, co wynikało z mojej konkretnej konfiguracji, ale czasami trzeba po prostu załatwiać sprawy.

+0

Co serwera są używasz? Używam faye-websocket na cienkiej i jestem w dokładnie tej samej sytuacji. – itdoesntwork

+0

Działa na cienkim. Od tego czasu zaktualizowałem system do wersji 4.1 i Ruby 2.1.5 po aktualizacji zabezpieczeń i nie miałem okazji spróbować ponownie, mam nadzieję na cud świąteczny. Rozejrzałem się i nie mogłem znaleźć wiele informacji na temat tego problemu, więc zakładam, że to tylko artefakt ze względu na bardzo mało prawdopodobną kombinację elementów. – Enders

+0

Jeśli nie używasz żadnych specjalnych funkcji Railsowych, prawdopodobnie łatwiej będzie Ci się z nim [framework Plezi] (https://github.com/boazsegev/plezi). Powinien działać również z ActiveRecord i ActiveSupport, jeśli ich używasz i ma łatwą integrację z Redis. – Myst

Odpowiedz

3

myślę szukasz następujących środków:

z wątku pytanie: 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.

Tam także to (nieco stary) artykuł napisany od 2012: Inspecting WebSocket Traffic with Chrome Developer Tools

+1

Podczas gdy ten link może odpowiedzieć na pytanie, lepiej umieścić tutaj istotne części odpowiedzi i podać link do odsyłacza. Odpowiedzi dotyczące linków mogą stać się nieprawidłowe, jeśli strona z linkami się zmieni. - [Z recenzji] (/ opinia/niskiej jakości-posty/10618602) – Blackwood

+0

@Blackwood - Dzięki. Gotowe :) – Myst

Powiązane problemy