首页 > 解决方案 > 如何在sockets io中向所有用户发送消息

问题描述

早上好,我想在我的聊天中向所有用户发送一条消息,当用户来连接以显示文本 loginxxx 已连接我发现但它不起作用我不知道将这段代码放在哪里这里我的所有代码

var io = require("socket.io").listen(server);
/*io.sockets.on('connection', socket => {
  socket.join('room1');
  console.log('room créé');
  let msg="hi";
io.sockets.emit('sendMsgToAll',msg);
  });*/


io.sockets.on("connect", function(socket){// GESTIONNAIRE CONNECTION D'UN CLIENT 
// CREATION DE LA ROOM 


console.log("Un client s'est connecté");
socket.on("infoUser", function(userInfoUrl){ 
         // RECUPERE LES INFOS DE L'URL DE CHAT.HTML ET LES TRANSFORME EN JSON SECURISER LE SERVEUR DE SOCKET SINON PLANTAGE 
         // INSTAURER UNE SESSION POUR ETRE OBLIGE DE PASSER PAR CONNEXION !
         //http://localhost:3000/chat.html?pseudo=_Alicee_H1&age=25&ville=Bordeaux&sexe=femme
       let url = new URL(userInfoUrl);
       let pseudo = url.searchParams.get("pseudo");
       let age = url.searchParams.get("age");
       let ville = url.searchParams.get("ville");
       let sexe = url.searchParams.get("sexe");
       console.log(sexe);
       console.log(userInfoUrl+" id:"+socket.id);
       let userInfos='{"pseudo":"'+pseudo+'","age":"'+age+'","ville":"'+ville+'","sexe":"'+sexe+'"}';
       console.log(userInfos);
       userInfos=JSON.parse(userInfos);
       // AJOUTER JSON.parse
        //TRAITER DECONEXION
        // FAIRE CORESPONDRE PSEUDO ET SOCKET.ID        
        socket.emit('pseudo',userInfos['pseudo']);
        
       
});
io.sockets.on('connection', socket => {
  socket.join('room1');
  console.log('room créé');
  let msg="hi";
io.sockets.emit('sendMsgToAll',msg);
  });
// A GERER LA DECONNEXION D'UN USER SPECIFIQUE VOIR TUTOS 
socket.on('disconnect', function () {
console.log('A user disconnected');
});



});

io.sockets.on('connection', socket => {
  socket.join('room1');
  console.log('room créé');
  let msg="hi";
io.sockets.emit('sendMsgToAll',msg);
  });
我没有将上面的代码与连接放在哪里我是新手连接和连接有什么区别?

编辑我关于 Socket.io 的脚本客户端

function pageIsLoaded(){
//var socket = io.connect("http://localhost:3000");


var socket = io.connect("http://localhost:3000");//CONNECTION AU SERVEUR 
// ON RECUPERE LES VALEURS DE L'URL 
socket.on('sendMsgToAll',function(msg){

alert(msg);


});
//alert(Cookies.get('pseudo'));
socket.emit("infoUser",location.href);//ENVOI AU SERVEUR 

//socket.emit("event1,"Bonjour");//ENVOI AU SERVEUR 
/*socket.on('pseudo', function(data){
document.body.querySelector("#room").innerHTML=data;
//document.getElementById("displaydata").innerHTML=data+"|"+Cookies.get('pseudo');

});*/
}
function addListener(element,baseName,Funct)

{

if(element.addEventListener){

   element.addEventListener(baseName,Funct,false)
   
   
   }

 else if (element.attachEvent){

          element.attachEvent('on'+baseName,Funct)}
          


}

window.addListener(window,'load',pageIsLoaded );
谢谢你的帮助

标签: javascriptnode.jsexpresssocket.io

解决方案


推荐阅读