所有分类
  • 所有分类
  • 后端开发

Node.js+WebSocket:实时聊天秘籍大揭秘

哥几个,咱们现在聊聊那个很牛逼的东西:使用NodeJS+WS(WebSocket)实现点对点和群组聊天功能。你们都准备好了没?

咱们别磨叽了,赶紧看问题!想学怎么用Node.js+ws插件搞定实时聊天和群聊的功能么?这事儿可大着,关系到你上网跟小伙伴们怎样嗨皮!你觉得重不重要?

我们来搞一下怎么整好这个事儿!主要环节你得用到 websocket,就像个中间的翻译,帮忙我们的聊天室有个能点对点或组队的方式进行对话。然后,就是那个叫 Clients 的小助手,负责记住这些链接。只要帮每个连接贴上标签,根据收到的消息找线索、挑重要的回复,这样就能确保咱们的对话随时都畅通无阻~

咱接着来聊聊下一个问题咋整。这次这个问题,也挺重要滴~就是怎么弄个HTML页面让大家在上面聊聊天啥的。想过这个问题没?

 nbs.on("connection", (ws, req) => {
   ws.on("message", message => {
    // 这里解析数据
    const result = JSON.parse(message);
    // 是否是登陆,登陆后绑定id
    if (result.login) {
     ws.socketIdxos = result.id;
    } else {
     // 这里只做一个小的场景,不是登陆就是发送信息
     // 根据存储的id 是否是要 发送的对象 来单独响应
     nbs.clients.forEach(s => {
      if (s.socketIdxos == result.to && s.readyState == 1) {
       s.send(JSON.stringify({ data: result.mes }));
      }
     });
    }
   });
   ws.on("close", message => {
    console.log(ws.socketIdxos,"退出连接");
   });
  });

咱来看下咋解决这问题!试试弄3页,模拟2人和1组的聊天情景。这样,在这几个界面里都能相互发送消息接收信息了,很酷炫的感觉!

Node.js+WebSocket:实时聊天秘籍大揭秘

咱们换到第三个话题这个挺关键滴~得琢磨怎么展示我们做了点啥,让所有人知道我们发什么讯息。你觉得这个问题重要吗?



 
  
  BBB111 
  
  const ws = new WebSocket("ws://localhost:8181");
  ws.onopen = function (e) {
   ws.send(JSON.stringify({
    "id":"BBB111",
    "login":true,
   }));
  }
  function sendMessage() {
    ws.send(JSON.stringify({
    "id":"BBB111", // 当前ID
    "login":false, // 是否登陆
		"to":"AAA111", // 发送对象
		"mes":"我是BBB111,这是发送给AAA111的消息" // 发送内容
   }));
  }
	function sendYUYUYU() {
    ws.send(JSON.stringify({
    "id":"BBB111",
    "login":false,
		"to":"YUYUYU",
		"mes":"我是BBB111,这是到群里的消息"
   }));
  }
  ws.onmessage = function (e) {
   console.log(e,"eeee-");
  }
  
 
  
 
   
	 
 
 

快来围观看看咋解决这个事儿。就是说说AAA和BBB他们发了啥。你知道吗,这在群里可都看得见哩!以后你们就可以随便瞅瞅别人发的啥,多方便~

 
  
   
    
    群聊
    
    const ws = new WebSocket("ws://localhost:8181");
    ws.onopen = function (e) {
     // 这里主要作用就是注册下群成立了 ......
     ws.send(JSON.stringify({ 
      "id":"YUYUYU", 
      "login":true,
     }));
    }
    ws.onmessage = function (e) {
     console.log(e,"eeee-");
    }
    
   
    
   
  
   
   

搞定了!我们一起做出了个超酷的WebSocket,别忘了和大家分享这份学习的快乐!今天就先聊到这里,希望你们都喜欢今天的分享。有什么问题或者想法就留言和我们聊天!顺便给我们点个赞分享一下,让更多人体验到这个超棒的技术!谢谢你们的支持

const ws = new WebSocket("ws://localhost:8181");
 localhost 可以换成的你的本机IP,这样页面在其他电脑也可以发送到你的页面上

原文链接:https://www.icz.com/technicalinformation/web3/2024/03/11458.html,转载请注明出处~~~
0

评论0

请先
注意:请收藏好网址www.icz.com,防止失联!站内免费资源持续上传中…!赞助我们
显示验证码
没有账号?注册  忘记密码?