Ich versuche mit node.js und socket.io zu beginnen.
Ich habe eine sehr (sehr) einfache Client-Server-Test-Anwendung, und ich kann es nicht zur Arbeit bekommen.
Das System ist auf einem Windows-Rechner mit einem Apache-Server eingerichtet.
Der Apache läuft auf port 81
und die socket.io wird bis zu port 8001
socket.io - 'connect' Event feuert nicht auf dem Client
Server zu hören - server.js
var io = require('socket.io').listen(8001);
io.sockets.on('connection', function (socket) {
console.log('\ngot a new connection from: ' + socket.id + '\n');
});
Kunde - index.html
<!DOCTYPE html>
<html>
<head>
<title>node-tests</title>
<script type="text/javascript" src="http://localhost:8001/socket.io/socket.io.js"> </script>
<script type="text/javascript">
var socket = io.connect('http://localhost', { port: 8001 });
socket.on('connect', function() {
alert('connect');
});
socket.on('error', function (data) {
console.log(data || 'error');
});
socket.on('connect_failed', function (data) {
console.log(data || 'connect_failed');
});
</script>
</head>
<body>
</body>
</html>
Nach dem Starten meines Servers mit node server.js
ist die Standard (erwartete) Ausgabe wr itten auf die Server-Konsole:
info: socket.io started
Wenn ich index.html
im Browser öffnen (Chrom in meinem Fall - Test nicht auf anderem Browser) das folgende Protokoll die Serverkonsole geschrieben:
info: socket.io started
debug: served static content /socket.io.js
debug: client authorized
info: handshake authorized 9952353481638352052
debug: setting request GET /socket.io/1/websocket/9952353481638352052
debug: set heartbeat interval for client 9952353481638352052
debug: client authorized for
got a new connection from: 9952353481638352052
debug: setting request GET /socket.io/1/xhr-polling/9952353481638352052?t=1333635235315
debug: setting poll timeout
debug: discarding transport
debug: cleared heartbeat interval for client 9952353481638352052
debug: setting request GET /socket.io/1/jsonp-polling/9952353481638352052?t=1333635238316&i=0
debug: setting poll timeout
debug: discarding transport
debug: clearing poll timeout
debug: clearing poll timeout
debug: jsonppolling writing io.j[0]("8::");
debug: set close timeout for client 9952353481638352052
debug: jsonppolling closed due to exceeded duration
debug: setting request GET /socket.io/1/jsonp-polling/9952353481638352052?t=1333635258339&i=0
...
...
...
In der Browser-Konsole erhalte ich:
connect_failed
So scheint es, wie der Client den Server erreicht und versucht, eine Verbindung, und der Server den Handshake wird ermächtigt aber die 0.123.Ereignis wird nie im Client ausgelöst, stattdessen erreicht die Verbindungsmethode und max reconnection attempts
und gibt connect_failed
zurück.
Irgendwelche help \ insight zu diesem wäre hilfreich.
Danke
Versuchen Sie es mit io.connect nur() es der ableiten kann URL und Port von der URL, auf der Sie sich befinden. Ich habe in der Vergangenheit Probleme mit Dingen in io.connect bekommen, die nicht so funktionieren, wie ich es von ihnen erwarte. –
@kfiroo hast du irgendeine Lösung dafür bekommen? – Hackableweb
@TimothyStrimple Danke Tim! ** Arbeite wieder an Heroku (Cedar) und localhost **! – AmpT