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服务器(4):路由
Dec 18 NodeJs
轻松创建nodejs服务器(10):处理POST请求
Dec 18 NodeJs
NodeJS使用jQuery选择器操作DOM
Feb 13 NodeJs
Nodejs+Socket.io实现通讯实例代码
Feb 13 NodeJs
nodejs+websocket实时聊天系统改进版
May 18 NodeJs
nodeJS实现路由功能实例代码
Jun 08 NodeJs
详解使用vscode+es6写nodejs服务端调试配置
Sep 21 NodeJs
Nodejs 和 Electron ubuntu下快速安装过程
May 04 NodeJs
nodejs微信开发之自动回复的实现
Mar 17 NodeJs
NodeJS读取分析Nginx错误日志的方法
May 14 NodeJs
nodejs实现日志读取、日志查找及日志刷新的方法分析
May 20 NodeJs
nodeJS与MySQL实现分页数据以及倒序数据
Jun 05 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新手上路(十二)
2006/10/09 PHP
ThinkPHP3.1新特性之字段合法性检测详解
2014/06/19 PHP
Yii2.0使用阿里云OSS的SDK上传图片、下载、删除图片示例
2017/09/20 PHP
彻底搞懂PHP 变量结构体
2017/10/11 PHP
jQuery的链式调用浅析
2010/12/03 Javascript
in.js 一个轻量级的JavaScript颗粒化模块加载和依赖关系管理解决方案
2011/07/26 Javascript
JQuery筛选器全系列介绍
2013/08/27 Javascript
table insertRow、deleteRow定义和用法总结
2014/05/14 Javascript
JS实现让网页背景图片斜向移动的方法
2015/02/25 Javascript
JQ实现新浪游戏首页幻灯片
2015/07/29 Javascript
JS基于面向对象实现的选项卡效果示例
2016/12/20 Javascript
微信小程序slider组件使用详解
2018/01/31 Javascript
JS拖动选择table里的单元格完整实例【基于jQuery】
2019/05/28 jQuery
详解Node.js异步处理的各种写法
2019/06/09 Javascript
ECharts地图绘制和钻取简易接口详解
2019/07/12 Javascript
vue前后分离调起微信支付
2019/07/29 Javascript
Vue 刷新当前路由的实现代码
2019/09/26 Javascript
JS变量提升原理与用法实例浅析
2020/05/22 Javascript
vue结合el-upload实现腾讯云视频上传功能
2020/07/01 Javascript
Vue+element+cookie记住密码功能的简单实现方法
2020/09/20 Javascript
[07:49]2014DOTA2国际邀请赛 Newbee夺冠后采访xiao8坦言奖金会上交
2014/07/23 DOTA
python使用urlparse分析网址中域名的方法
2015/04/15 Python
python中logging包的使用总结
2018/02/28 Python
Python-OpenCV基本操作方法详解
2018/04/02 Python
12个步骤教你理解Python装饰器
2019/07/01 Python
python 实现矩阵按对角线打印
2019/11/29 Python
CSS3中的@keyframes关键帧动画的选择器绑定
2016/06/13 HTML / CSS
使用SVG实现提示框功能的示例代码
2020/06/05 HTML / CSS
StubHub墨西哥:购买和出售您的门票
2016/09/17 全球购物
英国办公用品商店:Office Outlet
2018/04/04 全球购物
经销商培训邀请函
2014/01/21 职场文书
路政管理毕业自荐书范文
2014/02/10 职场文书
考核评语大全
2014/04/29 职场文书
护士工作失误检讨书
2014/09/14 职场文书
离婚撤诉申请书范本
2015/05/18 职场文书
Flask response响应的具体使用
2021/07/15 Python