加入房间时Socket.io断开连接

时间:2018-07-23 09:29:39

标签: node.js socket.io express-handlebars

在没有加入房间的情况下工作正常 显示朋友列表,然后单击,将打开一个新页面,可以与各个朋友聊天

<table>
    <tr>
      <th>Name</th>

    </tr>
    {{#each friends}}
    <tr>
      <td><a href="/chat?name={{this.profileName}}">{{this.profileName}}</a></td>

    </tr>
    {{/each}}
  </table>

然后在socket.io所在的chat_server.js上

socket.join(chatTable);//joining a room ! where problem rises

io.sockets.in(chatTable).emit('db chat message',rows);  

然后在网络端

 <form action="">
  <input id="m" autocomplete="off" /><button>Send</button>
</form>

以及jquery部分

 $('form').submit(function(){

  socket.emit('chat message', $('#m').val());
   $('#m').val()='';
  return false;
});

调用加入房间时...页面将刷新,其中url参数(名称)消失,socket.io断开并重新连接。

1 个答案:

答案 0 :(得分:1)

我假设chatTable变量是string

使用event.preventDefault()

 $('form').submit(function(event) {

    event.preventDefault();
    socket.emit('chat message', $('#m').val());
    $('#m').val("");//$('#m').val()=' ' ; does not work 
});

还要检查Socket.IO cheatsheetrooms and namespaces的文档。