nodejs 使用nodejs-websocket模块实现点对点实时通讯


Posted in NodeJs onNovember 28, 2018

1、首先安装好nodejs-websocket

npm install nodejs-websocket --save -g

2、编写服务端

var ws = require("nodejs-websocket")
var AllUserData = new Array()
// Scream server example: "hi" -> "HI!!!"
var server = ws.createServer(function (conn) {
  console.log("New connection")
  conn.on("text", function (str) {
    console.log("Received "+str)
    AllUserData.push({
      'id':str,
      'ws':conn
    })
    conn.sendText(str.toUpperCase()+"!!!")
  })
  conn.on("close", function (code, reason) {
    console.log("Connection closed")
    // 当用户退出的时候捕捉到退出的用户
    for (var i=0 in AllUserData) {
      if (AllUserData[i].ws == conn) {
        console.log(AllUserData[i])
      }
    }
  })
}).listen(8001)

3、简易客户端

<!DOCTYPE html>
<html>
<head>
  <title>django-websocket</title>
  <script src="http://code.jquery.com/jquery-1.11.1.min.js"></script>
  <script type="text/javascript">//<![CDATA[
  $(function () {
    $('#connect_websocket').click(function () {
      if (window.s) {
        window.s.close()
      }
      /*创建socket连接*/
      var socket = new WebSocket("ws://127.0.0.1:8001");
      socket.onopen = function () {
        console.log('WebSocket open');//成功连接上Websocket
      };
      socket.onmessage = function (e) {
        console.log('message: ' + e.data);//打印出服务端返回过来的数据
        $('#messagecontainer').prepend('<p>' + e.data + '</p>');
      };
      // Call onopen directly if socket is already open
      if (socket.readyState == WebSocket.OPEN) socket.onopen();
      window.s = socket;
    });
    $('#send_message').click(function () {
      //如果未连接到websocket
      if (!window.s) {
        alert("websocket未连接.");
      } else {
        window.s.send($('#message').val());//通过websocket发送数据
      }
    });
    $('#close_websocket').click(function () {
      if (window.s) {
        window.s.close();//关闭websocket
        console.log('websocket已关闭');
      }
    });
  });
  //]]></script>
</head>
<body>
<br>
<input type="text" id="message" value="user1"/>
<button type="button" id="connect_websocket">连接 websocket</button>
<button type="button" id="send_message">发送 message</button>
<button type="button" id="close_websocket">关闭 websocket</button>
<h1>Received Messages</h1>
<div id="messagecontainer">
</div>
</body>
</html>

总结

以上所述是小编给大家介绍的nodejs 使用nodejs-websocket模块实现点对点实时通讯,希望对大家有所帮助,如果大家有任何疑问请给我留言,小编会及时回复大家的。在此也非常感谢大家对三水点靠木网站的支持!

NodeJs 相关文章推荐
nodejs中实现sleep功能实例
Mar 24 NodeJs
详解nodejs微信公众号开发——2.自动回复
Apr 10 NodeJs
Nodejs之http的表单提交
Jul 07 NodeJs
详解nodeJs文件系统(fs)与流(stream)
Jan 24 NodeJs
nodejs爬虫初试superagent和cheerio
Mar 05 NodeJs
nodejs实现解析xml字符串为对象的方法示例
Mar 14 NodeJs
nodeJS模块简单用法示例
Apr 21 NodeJs
Nodejs实现爬虫抓取数据实例解析
Jul 05 NodeJs
nodejs实现一个word文档解析器思路详解
Aug 14 NodeJs
nodejs中实现用户注册路由功能
May 20 NodeJs
nodeJS与MySQL实现分页数据以及倒序数据
Jun 05 NodeJs
NodeJS模块Buffer原理及使用方法解析
Nov 11 NodeJs
NodeJs 文件系统操作模块fs使用方法详解
Nov 26 #NodeJs
详解从NodeJS搭建中间层再谈前后端分离
Nov 13 #NodeJs
手把手教你如何使用nodejs编写cli命令行
Nov 05 #NodeJs
基于nodejs的雪碧图制作工具的示例代码
Nov 05 #NodeJs
nodejs遍历文件夹下并操作HTML/CSS/JS/PNG/JPG的方法
Nov 01 #NodeJs
nodejs中函数的调用实例详解
Oct 31 #NodeJs
NodeJS 将文件夹按照存放路径变成一个对应的JSON的方法
Oct 17 #NodeJs
You might like
一些星际专用术语解释
2020/03/04 星际争霸
php根据日期判断星座的函数分享
2014/02/13 PHP
PHP网站开发中常用的8个小技巧
2015/02/13 PHP
将jQuery应用于login页面的问题及解决
2009/10/17 Javascript
jquery下动态显示jqGrid以及jqGrid的属性设置容易出现问题的解决方法
2010/10/22 Javascript
使用Jquery打造最佳用户体验的登录页面的实现代码
2011/07/08 Javascript
THREE.JS入门教程(3)着色器-下
2013/01/24 Javascript
js 事件截取enter按键页面提交事件示例代码
2014/03/04 Javascript
jQuery中:last选择器用法实例
2014/12/30 Javascript
JavaScript开发者必备的10个Sublime Text插件
2016/02/27 Javascript
js插件Jcrop自定义截取图片功能
2016/10/14 Javascript
JavaScript正则获取地址栏中参数的方法
2017/03/02 Javascript
node.js文件上传重命名以及移动位置的示例代码
2018/01/19 Javascript
JS构造一个html文本内容成文件流形式发送到后台
2018/07/31 Javascript
详解如何创建并发布一个 vue 组件
2018/11/08 Javascript
bootstrap table实现iview固定列的效果实例代码详解
2019/09/30 Javascript
解决vue 子组件修改父组件传来的props值报错问题
2019/11/09 Javascript
python list语法学习(带例子)
2013/11/01 Python
python实现图片批量剪切示例
2014/03/25 Python
python读取TXT到数组及列表去重后按原来顺序排序的方法
2015/06/26 Python
老生常谈python的私有公有属性(必看篇)
2017/06/09 Python
利用Python如何制作好玩的GIF动图详解
2018/07/11 Python
Python根据成绩分析系统浅析
2019/02/11 Python
python 获取微信好友列表的方法(微信web)
2019/02/21 Python
Python占用的内存优化教程
2019/07/28 Python
python 实现Flask中返回图片流给前端展示
2020/01/09 Python
python编写俄罗斯方块
2020/03/13 Python
Python3读写ini配置文件的示例
2020/11/06 Python
Python3中对json格式数据的分析处理
2021/01/28 Python
存储过程和sql语句的优缺点
2014/07/02 面试题
UNIX操作系统结构由哪几部分组成
2016/02/17 面试题
班干部竞选演讲稿
2014/04/24 职场文书
甜品店创业计划书
2014/09/21 职场文书
共产党员批评与自我批评
2014/10/15 职场文书
国家助学金受助感言
2015/08/01 职场文书
用Python仅20行代码编写一个简单的端口扫描器
2022/04/08 Python