Mam serwer node.js uruchomiony z Expressem i próbuję ustanowić połączenie z internetem za pomocą strony serwerowej socket.io i strony po stronie klienta chrome 12 . Kiedy próbuję się połączyć, socket.io wypisuje komunikat debugowania z napisem "niszczenie aktualizacji non -socket.io", a kod w mojej procedurze obsługi połączenia nie działa. Również po stronie klienta readyState mojego gniazda to 2 (ZAMKNIĘCIE).problem z websocket: nie można połączyć się z serwerem node.js
Czy używasz pliku socket.io.js na kliencie do łączenia się z serwerem? –
pkyeck
+0
Czy możesz umieścić tutaj swój fragment kodu (lub link do github)? –
+0
Jakiej wersji Node.js i socket.io używasz? –
apose
A
Odpowiedz
1
Upewnij się, że plik socket.io.js wstawienie do kodu klienta i go używać. Jeśli spróbujesz stworzyć własny websocket po stronie klienta, prawdopodobnie napotkasz problemy.
zrobić coś takiego dla swojego serwera:
var app = require('express').createServer()
, io = require('socket.io').listen(app);
app.listen(80);
app.get('/', function (req, res) {
res.sendfile(__dirname + '/index.html');
});
io.sockets.on('connection', function (socket) {
socket.emit('news', { hello: 'world' });
socket.on('my other event', function (data) {
console.log(data);
});
});
i coś takiego do pliku HTML jesteś serwowania:
<script src="/socket.io/socket.io.js"></script>
<script>
var socket = io.connect('http://localhost');
socket.on('news', function (data) {
console.log(data);
socket.emit('my other event', { my: 'data' });
});
</script>
upewnij się, że służąc /socket.io/socket.io.js ze swoim serwerze dir . Następnie wystarczy przejrzeć dziennik konsoli w środowisku programisty przeglądarki internetowej w Opcjach lub pod Firebug po przejściu do strony.
Kiedy próbuję dodać plik socket.io.js do mojego klienta, pojawia się błąd, że klient nie może znaleźć "wymagać". Spojrzałem na kod socket.io.js i używa on wymagania, które uważałem za rzecz po stronie serwera (tj. Węzła), a nie JavaScript w obsługiwanej przeglądarce. Czy istnieje inna biblioteka, którą musimy uwzględnić w kliencie, który implementuje "wymaganie" po stronie klienta? czy coś mi brakuje? –
Elisabeth
+0
@Elisabeth, powinieneś zrobić to w nowym pytaniu. Nie będziesz używać require() w kliencie. W kliencie użyjesz
Czy używasz pliku socket.io.js na kliencie do łączenia się z serwerem? – pkyeck
Czy możesz umieścić tutaj swój fragment kodu (lub link do github)? –
Jakiej wersji Node.js i socket.io używasz? – apose