NodeJs 实现简单WebSocket即时通讯的示例代码

 更新时间:2019年08月05日 15:07:47   作者:playboy5566  
这篇文章主要介绍了NodeJs 实现简单WebSocket即时通讯的示例代码,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧

服务器的实现很简单,先装一个nodeJs的模块,叫nodejs-websocket , 直接在nodeJs命令行中敲入:npm install nodejs-websocket回车就可以安装好了,然后就可以开始建立服务器了,因为有了nodejs-websocket模块,所以很多工作都不用我们自己做,直接调用别人封装好的方法就行了:

服务端代码

根据客户端传来的消息判断哪个是game1,哪个是game2,保存connection对象。

var ws = require("nodejs-websocket");
console.log("开始建立连接...")

var game1 = null,game2 = null , game1Ready = false , game2Ready = false;
var server = ws.createServer(function(conn){
  conn.on("text", function (str) {
    console.log("收到的信息为:"+str)
    if(str==="game1"){
      game1 = conn;
      game1Ready = true;
      conn.sendText("success");
    }
    if(str==="game2"){
      game2 = conn;
      game2Ready = true;
    }

    if(game1Ready&&game2Ready){
      game2.sendText(str);
    }

    conn.sendText(str)
  })
  conn.on("close", function (code, reason) {
    console.log("关闭连接")
  });
  conn.on("error", function (code, reason) {
    console.log("异常关闭")
  });
}).listen(8001)
console.log("WebSocket建立完毕")

【game1代码】:通过点击获取三个框的内容,传到服务器

<!doctype html>
<html lang="en">
<head>
  <meta charset="UTF-8">
  <title>Document</title>
  <style>
    .kuang{text-align: center;margin-top:200px;}
    #mess{text-align: center}
    .value{width: 200px;height:200px;border:1px solid;text-align: center;line-height: 200px;display: inline-block;}
  </style>
</head>
<body>
  <div id="mess">正在连接...</div>
  <div class="kuang">
    <div class="value" id="value1">小明小明</div>
    <div class="value" id="value2">大胸大胸</div>
    <div class="value" id="value3">小张小张</div>
  </div>

  <script>
    var mess = document.getElementById("mess");
    if(window.WebSocket){
      var ws = new WebSocket('ws://192.168.17.80:8001');

      ws.onopen = function(e){
        console.log("连接服务器成功");
        ws.send("game1");
      }
      ws.onclose = function(e){
        console.log("服务器关闭");
      }
      ws.onerror = function(){
        console.log("连接出错");
      }

      ws.onmessage = function(e){
        mess.innerHTML = "连接成功"
        document.querySelector(".kuang").onclick = function(e){
          var time = new Date();
          ws.send(time + " game1点击了“" + e.target.innerHTML+"”");
        }
      }
    }
  </script>
</body>
</html>

【game2代码】:获取服务推送来的消息,并且显示

<!doctype html>
<html lang="en">
<head>
  <meta charset="UTF-8">
  <title>Document</title>
  <style>
    .kuang{text-align: center;margin-top:200px;}
    #mess{text-align: center}
  </style>
</head>
<body>
  <div id="mess"></div>

  <script>
    var mess = document.getElementById("mess");
    if(window.WebSocket){
      var ws = new WebSocket('ws://192.168.17.80:8001');

      ws.onopen = function(e){
        console.log("连接服务器成功");
        ws.send("game2");
      }
      ws.onclose = function(e){
        console.log("服务器关闭");
      }
      ws.onerror = function(){
        console.log("连接出错");
      }

      ws.onmessage = function(e){
        var time = new Date();
        mess.innerHTML+=time+"的消息:"+e.data+"<br>"
      }
    }
  </script>
</body>
</html>

运行截图:


以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持脚本之家。

相关文章

  • 简单两步使用node发送qq邮件的方法

    简单两步使用node发送qq邮件的方法

    这篇文章主要介绍了简单两步使用node发送qq邮件的方法,小编觉得挺不错的,现在分享给大家,也给大家做个参考。一起跟随小编过来看看吧
    2019-03-03
  • Node.js  事件循环详解及实例

    Node.js 事件循环详解及实例

    这篇文章主要介绍了 Node.js 事件循环详解及实例的相关资料,Node.js 有多个内置的事件,我们可以通过引入 events 模块,并通过实例化 EventEmitter 类来绑定和监听事件,需要的朋友可以参考下
    2017-08-08
  • node学习笔记之读写文件与开启第一个web服务器操作示例

    node学习笔记之读写文件与开启第一个web服务器操作示例

    这篇文章主要介绍了node学习笔记之读写文件与开启第一个web服务器操作,结合实例形式分析了nodejs文件读写及创建web服务接收request请求与处理相关操作技巧,需要的朋友可以参考下
    2019-05-05
  • node.js中TCP Socket多进程间的消息推送示例详解

    node.js中TCP Socket多进程间的消息推送示例详解

    这篇文章主要给大家介绍了关于node.js中TCP Socket多进程间的消息推送的相关资料,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2018-07-07
  • Node.js编程中客户端Session的使用详解

    Node.js编程中客户端Session的使用详解

    这篇文章主要介绍了Node.js编程中客户端Session的使用详解,是Node.js入门学习中的基础知识,需要的朋友可以参考下
    2015-06-06
  • nodejs制作爬虫实现批量下载图片

    nodejs制作爬虫实现批量下载图片

    本文给大家分享的是作者使用nodejs制作爬虫来爬去图片并批量下载的全过程,非常的细致,有需要的小伙伴可以参考下
    2017-05-05
  • nodejs实现遍历文件夹并统计文件大小

    nodejs实现遍历文件夹并统计文件大小

    这篇文章主要介绍了nodejs实现遍历文件夹并统计文件大小,下面使用nodejs的遍历文件夹文件内容,并且读取所有的文件,并采取排序往大到小的顺序进行输出,需要的朋友可以参考下
    2015-05-05
  • nodejs multer实现文件上传与下载

    nodejs multer实现文件上传与下载

    这篇文章主要为大家详细介绍了nodejs multer实现文件上传与下载的相关资料,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2017-05-05
  • Node.js从字符串生成文件流的实现方法

    Node.js从字符串生成文件流的实现方法

    这篇文章主要介绍了Node.js从字符串生成文件流的实现方法,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2019-08-08
  • nodejs 十六进制字符串型数据与btye型数据相互转换

    nodejs 十六进制字符串型数据与btye型数据相互转换

    这篇文章主要介绍了nodejs 十六进制字符串型数据与btye型数据相互转换,需要的朋友可以参考下
    2018-07-07

最新评论