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 相关文章推荐
Ubuntu中搭建Nodejs开发环境过程分享
Jun 01 NodeJs
nodejs调用cmd命令实现复制目录
May 04 NodeJs
图片上传之FileAPI与NodeJs
Jan 24 NodeJs
详解NodeJS框架express的路径映射(路由)功能及控制
Mar 24 NodeJs
Nodejs进阶:express+session实现简易登录身份认证
Apr 24 NodeJs
nodejs基于WS模块实现WebSocket聊天功能的方法
Jan 12 NodeJs
NodeJS搭建HTTP服务器的实现步骤
Oct 12 NodeJs
CentOS7中源码编译安装NodeJS的完整步骤
Oct 13 NodeJs
NodeJS有难度的面试题(能答对几个)
Oct 09 NodeJs
nodejs中使用archive压缩文件的实现代码
Nov 26 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.MVC的模板标签系统(一)
2006/09/05 PHP
php通过文件头检测文件类型通用代码类(zip,rar等)
2010/10/19 PHP
PHP读取数据库并按照中文名称进行排序实现代码
2013/01/29 PHP
常用PHP框架功能对照表
2014/10/23 PHP
PHP爬虫之百万级别知乎用户数据爬取与分析
2016/01/22 PHP
详谈PHP中public,private,protected,abstract等关键字的用法
2017/12/31 PHP
Three.js源码阅读笔记(光照部分)
2012/12/27 Javascript
jquery通过a标签删除table中的一行的代码
2013/12/02 Javascript
JavaScript中join()方法的使用简介
2015/06/09 Javascript
jQuery满意度星级评价插件特效代码分享
2015/08/19 Javascript
jquery动态导航插件dynamicNav用法实例分析
2015/09/06 Javascript
JS中的==运算: [''] == false —&gt;true
2016/07/24 Javascript
jQuery实现文字自动横移
2017/01/08 Javascript
Jquery实时监听input value的实例
2017/01/26 Javascript
Vue组件化通讯的实例代码
2017/06/23 Javascript
angularjs实现天气预报功能
2020/06/16 Javascript
微信小程序页面跳转功能之从列表的item项跳转到下一个页面的方法
2017/11/27 Javascript
angular2中Http请求原理与用法详解
2018/01/11 Javascript
详解angular如何调用HTML字符串的方法
2018/06/30 Javascript
Python实现定时任务
2017/02/08 Python
python 获取当天凌晨零点的时间戳方法
2018/05/22 Python
python使用knn实现特征向量分类
2018/12/26 Python
pyqt5 使用cv2 显示图片,摄像头的实例
2019/06/27 Python
Python学习笔记之列表和成员运算符及列表相关方法详解
2019/08/22 Python
Python动态强类型解释型语言原理解析
2020/03/25 Python
如何解决flask修改静态资源后缓存文件不能及时更改问题
2020/08/02 Python
西班牙在线药店:DosFarma
2020/03/28 全球购物
财务会计应届生求职信
2013/11/24 职场文书
教师远程培训感言
2014/03/06 职场文书
庆祝教师节标语
2014/10/09 职场文书
教师党的群众路线教育实践活动个人整改措施
2014/11/04 职场文书
幼儿园辞职信
2015/05/13 职场文书
2015暑假社会调查报告
2015/07/13 职场文书
Python机器学习之基于Pytorch实现猫狗分类
2021/06/08 Python
Win11 KB5015814遇安装失败 影响开始菜单性能解决方法
2022/07/15 数码科技
javascript中Set、Map、WeakSet、WeakMap区别
2022/12/24 Javascript