在节点js中的多个HTML页面中使用相同的socket.io连接

时间:2017-03-30 18:12:43

标签: node.js

-Follwing是我在我的(dashboard.html)文件中编写的jquery代码

<script>
 $(function(){

 $("#username").hide();
var socket= io.connect();

$(document).on("click", ".help", function () {

    alert( $(this).attr('id'));
    socket.emit('help',{helper:$username.val(),requester:$(this).attr('id')});
});
});

---点击帮助按钮套接字会发出一个事件&#34; help&#34;正如你在代码中看到的那样。

---以下是服务器上的app.js文件

    io.sockets.on('connection',function(socket){
   socket.on('help',function(data){
    console.log('rohi is goood',data.helper);
    socket.emit('loadList' , {helper:data.helper,requester:data.requester});

});
});

--- On&#34; help&#34;事件套接字正在发出事件&#34; loadList&#34;在app.js文件中。    现在我想使用&#34; loadList&#34;其他html文件中的事件,如&#34; chat.html&#34;。    我写的代码如下是chat.html。

  <script>

      $(function(){

     // var socket= io.connect();

   // var socket= io.connect('http://localhost:3000/', { 'force new //connection': true });



socket.on('loadList',function(data){
    alert('inside help',$('#usernam').val());
    console.log('tatai',$('#usernam').val());
    if($('#usernam').val()== data.helper){
        $('#chatList').append('<p>'+data.requester+'</p>'+'<button value="chat"></button>');
    }
   else if($('#usernam').val() == data.requester){
                    $('#chatList').append('<p>'+data.helper+'</p>'+'<button value="chat"></button>');

    }
    else {
        alert('fuck off');
    }

});

以上代码无效。请告诉我如何在chat.html文件中使用相同的套接字连接。(loadList事件不起作用)。

1 个答案:

答案 0 :(得分:-1)

由于你的问题还没有完成所以我假设你想知道socket.io连接是否可以在不同的html页面上使用。是的,只要您有一台使用socket.io的服务器,您就可以在应用程序的每个html页面上访问它。

每次有新用户访问时,都会为该特定用户创建套接字会话,并且该用户可以访问应用程序的任何页面。