Problem socket.io NOT working
Details
- Generated a project with
express [folder]; cd [folder]; npm install;
- Setup socket.io
npm install socket.io
- Run node app with below code
- Client connect event fires but server connection NEVER fired.
Setup
- Server AWS Free Tier, Ubuntu 11.10, ami-a7f539ce
- nodejs v0.6.5
- express v2.5.1
- socket.io v0.8.7
Client
var socket = io.connect('http://example.com:3000');
socket.on('connect', function() {
console.log('connected');
});
socket.on('message', function(msg){
console.log(msg);
});
socket.on('disconnect', function() {
console.log('disconnected');
});
socket.on('error', function (e) {
console.log('System', e ? e : 'A unknown error occurred');
});
Server
[...]
app.listen(3000);
// socket.io setup
var socket = require('socket.io').listen(app);
// socket.io connection establishment
socket.on('connection', function (client) {
client.send("hello");
console.log("hello", client);
});
Why is connection event never fired?
Ricardo Tomasi is correct, saved my life, i was going crazy.
Altough things changed, we are in 2013, there's still an issue opened (since 2 years) on this
probably something changed, anyway to register the 'connect' event i had to do this:
Took a while to notice... the
connection
event is emmited onio.sockets
. In your code this would beYou should use
io
instead ofsocket
as the var name to avoid this confusion.The following did a trick for me with: socket.io-client: "^0.9.16"
Now 'connect' event fires consistently and there is no re-use.
I figured out this option by examining socket.io-client/lib/io.js line: 192 Since I can't even find this io.js file in github, I think there is refactoring in future releases, and this option might not work.
At least this might be helpful to somebody who will take this temporary work around.