socket.on('connection' … event never fired nodejs + express + socket.io

前端 未结 3 688
遥遥无期
遥遥无期 2020-12-29 09:15

Problem socket.io NOT working

Details

  • Generated a project with express [folder]; cd [folder]; npm install;
相关标签:
3条回答
  • 2020-12-29 09:42

    The following did a trick for me with: socket.io-client: "^0.9.16"

    io.connect("http://localhost:4000", {'force new connection': true});
    

    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.

    0 讨论(0)
  • 2020-12-29 09:43

    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:

    var openSocket = function (uniqueID) {
      var appSocket = io.connect('/'+uniqueID, { transports: ['websocket', 'xhr-polling']});
      appSocket.socket.on('connect', function () {
        console.log('i did connect.');
      });
      return appSocket;
    };
    
    0 讨论(0)
  • 2020-12-29 09:56

    Took a while to notice... the connection event is emmited on io.sockets. In your code this would be

    socket.sockets.on('connection', function (client) {
      client.send("hello")
      console.log("hello", client)
    })
    

    You should use io instead of socket as the var name to avoid this confusion.

    0 讨论(0)
提交回复
热议问题