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实现的一个简单聊天室功能分享
Dec 06 NodeJs
NodeJs中的VM模块详解
May 06 NodeJs
Nodejs实战心得之eventproxy模块控制并发
Oct 27 NodeJs
Nodejs express框架一个工程中同时使用ejs模版和jade模版
Dec 28 NodeJs
快速掌握Node.js之Window下配置NodeJs环境
Mar 21 NodeJs
nodejs入门教程一:概念与用法简介
Apr 24 NodeJs
详解使用nodeJs安装Vue-cli
May 17 NodeJs
nodejs制作小爬虫功能示例
Feb 24 NodeJs
Nodejs环境实现socket通信过程解析
Jul 03 NodeJs
通过实例了解Nodejs模块系统及require机制
Jul 16 NodeJs
Nodejs在局域网配置https访问的实现方法
Oct 17 NodeJs
nodejs中的异步编程知识点详解
Jan 17 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程序内部post数据的方法
2015/03/31 PHP
PHP的openssl加密扩展使用小结(推荐)
2016/07/18 PHP
Yii2针对游客、用户防范规则和限制的解决方法分析
2016/10/08 PHP
PHP使用微信开发模式实现搜索已发送图文及匹配关键字回复的方法
2017/09/13 PHP
javascript 学习之旅 (3)
2009/02/05 Javascript
Jquery ajax不能解析json对象,报Invalid JSON错误的原因和解决方法
2010/03/27 Javascript
获取客户端电脑日期时间js代码(jquery)
2012/09/12 Javascript
js算法中的排序、数组去重详细概述
2013/10/14 Javascript
jQuery选择器全面总结
2014/01/06 Javascript
jquery使用jxl插件导出excel示例
2014/04/14 Javascript
详解js闭包
2014/09/02 Javascript
jquery获取及设置outerhtml的方法
2015/03/09 Javascript
浅谈javascript的call()、apply()、bind()的用法
2016/02/21 Javascript
Js 获取当前函数参数对象的实现代码
2016/06/20 Javascript
再谈Javascript中的基本类型和引用类型(推荐)
2016/07/01 Javascript
jQuery实现背景滑动菜单
2016/12/02 Javascript
移动端日期插件Mobiscroll.js使用详解
2016/12/19 Javascript
js实现自定义进度条效果
2017/03/15 Javascript
通过命令行生成vue项目框架的方法
2017/07/12 Javascript
AngularJS中控制器函数的定义与使用方法示例
2017/10/10 Javascript
vue 动态改变静态图片以及请求网络图片的实现方法
2018/02/07 Javascript
Angular2实现的秒表及改良版示例
2019/05/10 Javascript
vue中v-for循环选中点击的元素并对该元素添加样式操作
2020/07/17 Javascript
vue v-model的用法解析
2020/10/19 Javascript
[01:03:59]2018DOTA2亚洲邀请赛3月30日 小组赛B组VGJ.T VS Secret
2018/03/31 DOTA
python正则表达式抓取成语网站
2013/11/20 Python
python print 按逗号或空格分隔的方法
2018/05/02 Python
Python创建一个空的dataframe,并循环赋值的方法
2018/11/08 Python
python 使用 requests 模块发送http请求 的方法
2018/12/09 Python
Python 实现将数组/矩阵转换成Image类
2020/01/09 Python
使用PyCharm安装pytest及requests的问题
2020/07/31 Python
我的大学生活职业生涯规划
2014/01/02 职场文书
运动会领导邀请函
2014/01/10 职场文书
装修设计师求职信
2014/02/26 职场文书
最美护士演讲稿
2014/08/27 职场文书
解决ubuntu安装软件时,status-code=409报错的问题
2022/12/24 Servers