2014-04-07 19 views
6

Próbuję połączyć się z serwerem socket.io zza odwrotnego proxy Apache. Mam Apache uruchomiony na porcie 8888. Serwer nodejs działa na tej samej maszynie na porcie 9096. Do testowania proxy jest skonfigurowany na moim komputerze lokalnym tak:Jak podłączyć socket.io za pośrednictwem odwrotnego proxy

ProxyPass /some/path http://localhost:9096 
ProxyPassReverse /some/path http://localhost:9096 

W kodzie klienta zrobić coś takiego :

var socketUrl = 'http://localhost:8888/some/path/namespace'; 
var socket = io.connect(socketUrl); 

Powoduje to następujące zachowanie.

Pierwszy mój klient żąda skrypt socket.io.js w:

http://localhost:8888/some/path/socket.io/socket.io.js 
-> 200 ok 

Następnie gniazdo próbuje połączyć w:

localhost:8888/socket.io/1?123983759 
-> 404 not found 

znalazłem konfiguracji „zasobu” dla gniazda. io, ale wydaje się, że jest to tylko miejsce, do którego pobierany jest skrypt socket.io.js, ale nie adres URL, z którym próbuje się połączyć. Zawsze wydaje się, że łączy się z głównym źródłem pochodzenia klienta.

Jak mogłem zrobić to podłączyć do localhost: 8888/some/path/socket.io/1 123983759

?

Odpowiedz

8

W kodzie klienta trzeba ustawić ścieżkę bazową z opcją zasobów, tak jak poniżej:

var socket = io.connect('http://localhost:8888', {resource: '/some/path/socket.io'}); 
+0

OK teraz próbuje się połączyć to, co wydaje się być poprawny URL. Uścisk dłoni jest wykonywany, ale status żądania (socket.io/1?t=123983759) jest teraz "anulowany". Jeśli użyję tego samego adresu URL w przeglądarce, po prostu zwróci coś takiego jak "xrf021YGWWEF5NUHoyTD: 60: 60: websocket" bez problemów. Nie wiem, co się dzieje. –

+0

Z "handshake is made" Mam na myśli nodejs prints "info - handshake authorized 05T-Uzt9CmK4SrN8sPQJ" –

+0

Mam go do pracy, ale nie pamiętam, dlaczego wpadłem na anulowany problem. Myślę, że miało to związek z moimi ustawieniami dla odwrotnego proxy, a nie z ustawieniami socket.io. Dla wersji socket.io 1.0 opcja zasobów została zastąpiona przez "ścieżkę". Znalazłem to jako pomocne http://blog.seafuj.com/migrating-to-socketio-1-0 –

Powiązane problemy