NodeJS简单实现WebSocket功能示例


Posted in NodeJs onFebruary 10, 2018

本文实例讲述了NodeJS简单实现WebSocket功能。分享给大家供大家参考,具体如下:

我们基于expresssocket.io开发,首先我们需要安装以下包

npm install --save express
npm install --save socket.io

服务器端代码:

var app = require('express')();
var http = require('http').Server(app);
var io = require('socket.io')(http);
app.get('/', function(req, res){
  res.send('<h1>Welcome Realtime Server</h1>');
});
io.on('connection', function(socket){
  console.log('a user connected');
  socket.on("disconnect", function() {
    console.log("a user go out");
  });
  socket.on("message", function(obj) {
    io.emit("message", obj);
  });
});
http.listen(3000, function(){
  console.log('listening on *:3000');
});

客户端代码

<!DOCTYPE html>
<html lang="en">
<head>
  <meta charset="UTF-8">
  <title>Document</title>
  <script src="http://127.0.0.1:3000/socket.io/socket.io.js"></script>
</head>
<body>
  <ul id="message"></ul>
  <script>
    socket = io.connect('ws://127.0.0.1:3000');
    socket.emit("message", {"name" : navigator.userAgent, "msg" : "hello world"});
    socket.on("message", function(obj) {
      console.log(obj);
    });
  </script>
</body>
</html>

一个控制台版的聊天室做好了(^o^)/~

希望本文所述对大家nodejs程序设计有所帮助。

NodeJs 相关文章推荐
用nodejs写的一个简单项目打包工具
May 11 NodeJs
Nodejs实现的一个静态服务器实例
Dec 06 NodeJs
NodeJS使用jQuery选择器操作DOM
Feb 13 NodeJs
NodeJS整合银联网关支付(DEMO)
Nov 09 NodeJs
详解HTTPS 的原理和 NodeJS 的实现
Jul 04 NodeJs
nodejs后台集成ueditor富文本编辑器的实例
Jul 11 NodeJs
用nodejs实现json和jsonp服务的方法
Aug 25 NodeJs
nodejs项目windows下开机自启动的方法
Nov 22 NodeJs
nodejs基于express实现文件上传的方法
Mar 19 NodeJs
nodeJS模块简单用法示例
Apr 21 NodeJs
在NodeJs中使用node-schedule增加定时器任务的方法
Jun 08 NodeJs
nodeJs项目在阿里云的简单部署
Nov 27 NodeJs
nodejs使用redis作为缓存介质实现的封装缓存类示例
Feb 07 #NodeJs
nodejs中Express与Koa2对比分析
Feb 06 #NodeJs
nodejs实现的连接MySQL数据库功能示例
Jan 25 #NodeJs
详解nodeJs文件系统(fs)与流(stream)
Jan 24 #NodeJs
nodejs 最新版安装npm 的使用详解
Jan 18 #NodeJs
使用npm安装最新版本nodejs
Jan 18 #NodeJs
nodejs结合socket.io实现websocket通信功能的方法
Jan 12 #NodeJs
You might like
PHP入门速成(2)
2006/10/09 PHP
ubuntu下配置nginx+php+mysql详解
2015/09/10 PHP
javascript 自动填写表单的实现方法
2010/04/09 Javascript
原生javaScript做得动态表格(注释写的很清楚)
2013/12/29 Javascript
单击某一段文字改写文本颜色
2014/06/06 Javascript
jQuery中after()方法用法实例
2014/12/25 Javascript
图解js图片轮播效果
2015/12/20 Javascript
详解javascript new的运行机制
2016/01/26 Javascript
原生JavaScript实现AJAX、JSONP
2017/02/07 Javascript
jQuery插件echarts设置折线图中折线线条颜色和折线点颜色的方法
2017/03/03 Javascript
js实现旋转木马效果
2017/03/17 Javascript
详解用webpack2.0构建vue2.0超详细精简版
2017/04/05 Javascript
Zepto实现密码的隐藏/显示
2017/04/07 Javascript
nodejs和C语言插入mysql数据库乱码问题的解决方法
2017/04/14 NodeJs
微信小程序 聊天室简单实现
2017/04/19 Javascript
原生js FileReader对象实现图片上传本地预览效果
2020/03/27 Javascript
vue-cli 脚手架基于Nightwatch的端到端测试环境的过程
2018/09/30 Javascript
vue 项目build错误异常的解决方法
2019/04/22 Javascript
vue axios post发送复杂对象问题
2019/06/04 Javascript
微信小程序 组件的外部样式externalClasses使用详解
2019/09/06 Javascript
关于vue路由缓存清除在main.js中的设置
2019/11/06 Javascript
es6中使用map简化复杂条件判断操作实例详解
2020/02/19 Javascript
swiperjs实现导航与tab页的联动
2020/12/13 Javascript
Python中的文件和目录操作实现代码
2011/03/13 Python
屏蔽Django admin界面添加按钮的操作
2020/03/11 Python
python实现小程序推送页面收录脚本
2020/04/20 Python
Python如何进行时间处理
2020/08/06 Python
SEPHORA丝芙兰捷克官网:购买香水、化妆品和护肤品
2018/11/26 全球购物
程序员机试试题汇总
2012/03/07 面试题
教师个人自我鉴定
2014/02/08 职场文书
企业演讲比赛主持词
2014/03/18 职场文书
教职工代表大会主持词
2014/04/01 职场文书
开工典礼致辞
2015/07/29 职场文书
医疗纠纷调解协议书
2015/08/06 职场文书
Java使用JMeter进行高并发测试
2021/11/23 Java/Android
鸿蒙3.0体验感怎么样? 鸿蒙3.0系统评测向
2022/08/14 数码科技