javascript - 如何在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 );
解决方案
推荐阅读
- python - 在 getTotalX 函数中查找错误。Python
- java - Java依赖对象序列化一致性
- php - (Intellij Idea PHP) 本地项目文件夹文件到本地服务器项目根目录的映射
- windows - Azure 中的 Windows 升级
- spring-boot - 尝试访问登录网址时,Spring OAuth2“需要完整身份验证才能访问此资源错误”
- c - 比较具有 2 个名称的字符串
- symfony - PHPUnit:不报告呈现给 HTTP 错误的 Symfony 异常
- c# - 用于多个查找表的 MVC 核心存储库模式
- docker-swarm - Traefik 上的整个 SSL 证书链
- r - [R] 中的索引表