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的HTML分析利器node-jquery用法浅析
Nov 08 NodeJs
详解nodejs 文本操作模块-fs模块(三)
Dec 22 NodeJs
NodeJs下的测试框架Mocha的简单介绍
Feb 22 NodeJs
nodejs socket实现的服务端和客户端功能示例
Jun 02 NodeJs
nodejs简单访问及操作mysql数据库的方法示例
Mar 15 NodeJs
Nodejs 和 Electron ubuntu下快速安装过程
May 04 NodeJs
nodejs 简单实现动态html的方法
May 12 NodeJs
nodejs更改项目端口号的方法
May 13 NodeJs
webstorm中配置nodejs环境及npm的实例
May 15 NodeJs
NodeJs项目中关闭ESLint的方法
Aug 09 NodeJs
typescript nodejs 依赖注入实现方法代码详解
Jul 21 NodeJs
Nodejs + sequelize 实现增删改查操作
Nov 07 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+Mysql+jQuery实现动态展示信息
2011/10/08 PHP
JSON.stringify 语法实例讲解
2012/03/14 Javascript
JS文本获得焦点清除文本文字的示例代码
2014/01/13 Javascript
JS获取iframe中longdesc属性的方法
2015/04/01 Javascript
浅谈setTimeout 与 setInterval
2015/06/23 Javascript
js中unicode转码方法详解
2015/10/09 Javascript
js实现新浪微博首页效果
2015/10/16 Javascript
超赞的jQuery图片滑块动画特效代码汇总
2016/01/25 Javascript
JS传递对象数组为参数给后端,后端获取的实例代码
2016/06/28 Javascript
利用JS实现数字增长
2016/07/28 Javascript
EasyUI 结合JS导出Excel文件的实现方法
2016/11/10 Javascript
Bootstrap导航条鼠标悬停下拉菜单
2017/01/04 Javascript
简单实现IONIC购物车功能
2017/01/10 Javascript
微信小程序 数据绑定及运算的简单实例
2017/09/20 Javascript
vue axios基于常见业务场景的二次封装的实现
2018/09/21 Javascript
深入浅析golang zap 日志库使用(含文件切割、分级别存储和全局使用等)
2020/02/19 Javascript
[03:52]DOTA2英雄基础教程 酒仙
2013/12/23 DOTA
简单介绍Python中的RSS处理
2015/04/13 Python
Python中unittest模块做UT(单元测试)使用实例
2015/06/12 Python
Python中音频处理库pydub的使用教程
2017/06/07 Python
Python随机函数random()使用方法小结
2018/04/29 Python
基于MTCNN/TensorFlow实现人脸检测
2018/05/24 Python
python 通过 socket 发送文件的实例代码
2018/08/14 Python
python实现多张图片拼接成大图
2019/01/15 Python
python获取Pandas列名的几种方法
2019/08/07 Python
python爬虫 urllib模块发起post请求过程解析
2019/08/20 Python
python构造IP报文实例
2020/05/05 Python
全球最大的网上自行车商店:Chain Reaction Cycles
2016/12/02 全球购物
简述数组与指针的区别
2014/01/02 面试题
个人授权委托书
2014/04/03 职场文书
南湾猴岛导游词
2015/02/09 职场文书
乔布斯辞职信(中英文对照)
2015/05/12 职场文书
利用ajax+php实现商品价格计算
2021/03/31 PHP
PyCharm 安装与使用配置教程(windows,mac通用)
2021/05/12 Python
Java Dubbo框架知识点梳理
2021/06/26 Java/Android
【海涛DOTA解说】EVE女子战队独家录像加ZSMJ神牛两连发
2022/04/01 DOTA