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分页类代码分享
Jun 17 NodeJs
浅析Nodejs npm常用命令
Jun 14 NodeJs
nodejs的HTML分析利器node-jquery用法浅析
Nov 08 NodeJs
Highcharts+NodeJS搭建数据可视化平台示例
Jan 01 NodeJs
nodejs个人博客开发第六步 数据分页
Apr 12 NodeJs
nodejs mysql 实现分页的方法
Jun 06 NodeJs
Nodejs下使用gm圆形裁剪并合成图片的示例
Feb 22 NodeJs
nodejs读取本地中文json文件出现乱码解决方法
Oct 10 NodeJs
nodejs使用async模块同步执行的方法
Mar 02 NodeJs
NodeJs生成sitemap站点地图的方法示例
Jun 11 NodeJs
typescript nodejs 依赖注入实现方法代码详解
Jul 21 NodeJs
图解NodeJS实现登录注册功能
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三种方式实现链式操作详解
2017/01/21 PHP
PHP mysqli事务操作常用方法分析
2017/07/22 PHP
利用php操作memcache缓存的基础方法示例
2017/08/02 PHP
ie下动态加态js文件的方法
2011/09/13 Javascript
js 时间格式与时间戳的相互转换示例代码
2013/12/25 Javascript
jQuery.holdReady()方法用法实例
2014/12/27 Javascript
JavaScript更改原始对象valueOf的方法
2015/03/19 Javascript
AngularJS使用ngOption实现下拉列表的实例代码
2016/01/23 Javascript
jquery插件Jplayer使用方法简析
2016/04/22 Javascript
Bootstrap3制作图片轮播效果
2016/05/12 Javascript
Vue基于NUXT的SSR详解
2017/10/24 Javascript
bootstrap响应式导航条模板使用详解(含下拉菜单,弹出框)
2017/11/17 Javascript
通过fastclick源码分析彻底解决tap“点透”
2017/12/24 Javascript
Webpack打包字体font-awesome的方法示例
2018/04/26 Javascript
React 源码中的依赖注入方法
2018/11/07 Javascript
JS PHP字符串截取函数实现原理解析
2020/08/29 Javascript
浅谈Python 的枚举 Enum
2017/06/12 Python
python监控linux内存并写入mongodb(推荐)
2017/09/11 Python
python 类对象和实例对象动态添加方法(分享)
2017/12/31 Python
pygame游戏之旅 计算游戏中躲过的障碍数量
2018/11/20 Python
Centos部署django服务nginx+uwsgi的方法
2019/01/02 Python
python使用selenium实现批量文件下载
2019/03/11 Python
python ---lambda匿名函数介绍
2019/03/13 Python
详解将Pandas中的DataFrame类型转换成Numpy中array类型的三种方法
2019/07/06 Python
Python-Tkinter Text输入内容在界面显示的实例
2019/07/12 Python
python 如何调用 dubbo 接口
2020/09/24 Python
美国猫狗药物和用品网站:PetCareRx
2017/01/05 全球购物
毕业生的自我评价范文
2013/12/31 职场文书
九年级政治教学反思
2014/02/06 职场文书
质量标语大全
2014/06/12 职场文书
2014年教师节讲话稿5篇
2014/09/10 职场文书
党员个人剖析材料2014
2014/10/08 职场文书
2015年行政助理工作总结
2015/04/30 职场文书
农村结婚典礼主持词
2015/06/29 职场文书
2015最新婚礼主持词
2015/06/30 职场文书
CSS filter 有什么神奇用途
2021/05/25 HTML / CSS