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开发微信公众号后台服务实例
Sep 03 NodeJs
Nodejs实现的一个简单udp广播服务器、客户端
Sep 25 NodeJs
浅谈Nodejs中的作用域问题
Dec 26 NodeJs
进阶之初探nodeJS
Jan 24 NodeJs
NodeJS仿WebApi路由示例
Feb 28 NodeJs
NodeJs安装npm包一直失败的解决方法
Apr 28 NodeJs
详解Nodejs之npm&amp;package.json
Jun 15 NodeJs
NodeJS 实现手机短信验证模块阿里大于功能
Jun 19 NodeJs
NodeJS如何实现同步的方法示例
Aug 24 NodeJs
NodeJS使用Range请求实现下载功能的方法示例
Oct 12 NodeJs
深入理解nodejs搭建静态服务器(实现命令行)
Feb 05 NodeJs
详解NodeJs项目 CentOs linux服务器线上部署
Sep 16 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实现zip压缩文件解压缩代码分享(简单易懂)
2014/05/10 PHP
PHP开发注意事项总结
2015/02/04 PHP
如何使用GDB调试PHP程序
2015/12/08 PHP
jquery select(列表)的操作(取值/赋值)
2011/03/16 Javascript
jQuery处理xml格式的返回数据(实例解析)
2013/11/28 Javascript
用于deeplink的js方法(判断手机是否安装app)
2014/04/02 Javascript
jQuery中:animated选择器用法实例
2014/12/29 Javascript
jQuery选择器用法实例详解
2015/12/17 Javascript
基于Node.js的强大爬虫 能直接发布抓取的文章哦
2016/01/10 Javascript
JavaScript判断用户名和密码不能为空的实现代码
2016/05/16 Javascript
jQuery EasyUI Draggable拖动组件
2017/03/01 Javascript
vue-star评星组件开发实例
2018/03/01 Javascript
微信小程序中为什么使用var that=this
2019/08/27 Javascript
JS数组方法reduce的用法实例分析
2020/03/03 Javascript
详解JS预解析原理
2020/06/16 Javascript
JavaScript Image对象实现原理实例解析
2020/08/26 Javascript
[01:12:44]VG vs Mineski Supermajor 败者组 BO3 第二场 6.6
2018/06/07 DOTA
python实现多线程暴力破解登陆路由器功能代码分享
2015/01/04 Python
python实现提取百度搜索结果的方法
2015/05/19 Python
DataFrame 将某列数据转为数组的方法
2018/04/13 Python
python3处理含有中文的url方法
2018/05/10 Python
关于Python 常用获取元素 Driver 总结
2019/11/24 Python
Python函数的返回值、匿名函数lambda、filter函数、map函数、reduce函数用法实例分析
2019/12/26 Python
Pytorch技巧:DataLoader的collate_fn参数使用详解
2020/01/08 Python
浅谈TensorFlow之稀疏张量表示
2020/06/30 Python
Python中openpyxl实现vlookup函数的实例
2020/10/28 Python
Calphalon美国官网:美国顶级锅具品牌
2020/02/05 全球购物
培训班开班仪式主持词
2014/03/28 职场文书
村长反四风问题个人对照检查材料
2014/09/21 职场文书
八项规定整改方案
2014/10/01 职场文书
房屋租赁协议书(标准版)
2014/10/02 职场文书
朋友聚会开场白
2015/06/01 职场文书
2016元旦晚会主持词
2015/07/01 职场文书
2016年度基层党建工作公开承诺书
2016/03/25 职场文书
基于tensorflow权重文件的解读
2021/05/26 Python
详解SpringBoot异常处理流程及原理
2021/06/21 Java/Android