node.js基于express使用websocket的方法


Posted in Javascript onNovember 09, 2017

本文实例讲述了node.js基于express使用websocket的方法。分享给大家供大家参考,具体如下:

这个效果我也是翻了好长时间的资料,测试才成功的,反正成功,大家看看吧

首先你需要安装socket.io模块

npm install socket.io --save

然后打开express的app.js将模块引入,在12行左右的

var app = express();

下面添加两行

var server = require('http').Server(app);
var io = require('socket.io')(server);

然后在20多行里面添加

app.use(function(req, res, next){
 res.io = io;
 next();
});

由于本人不喜欢从www里面启动,所以在app.js里面又添加了几行代码,添加到底部的倒数第二行以上

var port = 3000;
app.set('port', port);
server.listen(port);

这就开始监听3000端口了

这样,准备工作已经完成了,然后开始进行示例

用官方的示例代码测试,可以直接写到app.js里面

io.on('connection', function (socket) {
 socket.emit('news', { hello: 'world1' });
 socket.on('my other event', function (data) {
  console.log(data);
 });
});

服务端的准备工作已经完成,在客户端页面首先将socket.js文件引入

<script src='javascripts/socket.io-1.4.5.js'></script>
var socket = io.connect("//localhost:3000");
socket.on('news', function (data) {
  console.log(data);
  alert(data);
  socket.emit('my other event', { my: 'data' });
});

然后打开页面测试一下

如果想只在一个页面里服务端发送信息,可以这么写

router.get('/', function(req, res, next) {
  //只有当前页面可以获得
  res.io.on('connection', function(socket) {
    socket.emit('news', {
      hello: 'world'
    });
    socket.on('my other event', function(data) {
      console.log(data);
    });
  });
  //所有页面都可以获得
  var io = require("../app").io;
  io.emit("news",{hello:"myworld"});
  res.render("pclogin.ejs", {});
});

希望本文所述对大家nodejs程序设计有所帮助。

Javascript 相关文章推荐
Javascript与flash交互通信基础教程
Aug 07 Javascript
JavaScript 动态创建VML的方法
Oct 14 Javascript
一个简单的js树形菜单
Dec 09 Javascript
javascript中的缓动效果实现程序
Dec 29 Javascript
JS禁用浏览器退格键实现思路及代码
Oct 29 Javascript
用jquery仿做发微博功能示例
Apr 18 Javascript
Bootstrap框架结合jQuery仿百度换肤功能实例解析
Sep 17 Javascript
js es6系列教程 - 基于new.target属性与es5改造es6的类语法
Sep 02 Javascript
微信小程序实现YDUI的ScrollTab组件
Feb 02 Javascript
原生JS实现的雪花飘落动画效果
May 03 Javascript
Vue实现移动端左右滑动效果的方法
Nov 27 Javascript
通过JQuery,JQueryUI和Jsplumb实现拖拽模块
Jun 18 jQuery
angular2系列之路由转场动画的示例代码
Nov 09 #Javascript
使用ef6创建oracle数据库的实体模型遇到的问题及解决方案
Nov 09 #Javascript
基于vue配置axios的方法步骤
Nov 09 #Javascript
微信小程序倒计时功能实现代码
Nov 09 #Javascript
js与jQuery实现的用户注册协议倒计时功能实例【三种方法】
Nov 09 #jQuery
微信小程序获取手机号授权用户登录功能
Nov 09 #Javascript
jQuery.Sumoselect插件实现下拉复选框效果
Nov 09 #jQuery
You might like
不用数据库的多用户文件自由上传投票系统(1)
2006/10/09 PHP
php防止表单重复提交实例讲解
2019/02/11 PHP
对laravel的csrf 防御机制详解,及form中csrf_token()的存在介绍
2019/10/24 PHP
Javascript - HTML的request类
2006/07/15 Javascript
js简单实现用户注册信息的校验代码
2013/11/15 Javascript
js和css写一个可以自动隐藏的悬浮框
2014/03/05 Javascript
Node.js中require的工作原理浅析
2014/06/24 Javascript
学习Bootstrap组件之下拉菜单
2015/07/28 Javascript
深入解析JavaScript编程中的this关键字使用
2015/11/09 Javascript
Javascript基于对象三大特性(封装性、继承性、多态性)
2016/01/04 Javascript
php输出全部gb2312编码内的汉字方法
2017/03/04 Javascript
详解Node项目部署到云服务器上
2017/07/12 Javascript
详解angularjs 学习之 scope作用域
2018/01/15 Javascript
vue2.0+koa2+mongodb实现注册登录
2018/04/10 Javascript
纯js封装的ajax功能函数与用法示例
2018/05/14 Javascript
JS中Promise函数then的奥秘探究
2018/07/30 Javascript
js实现无缝滚动双图切换效果
2019/07/09 Javascript
Python使用代理抓取网站图片(多线程)
2014/03/14 Python
Python使用random和tertools模块解一些经典概率问题
2015/01/28 Python
浅谈python jieba分词模块的基本用法
2017/11/09 Python
matplotlib绘制动画代码示例
2018/01/02 Python
python匿名函数用法实例分析
2019/08/03 Python
Python加速程序运行的方法
2020/07/29 Python
Python爬虫之Selenium警告框(弹窗)处理
2020/12/04 Python
python matplotlib工具栏源码探析三之添加、删除自定义工具项的案例详解
2021/02/25 Python
The North Face北面美国官网:美国著名户外品牌
2018/09/15 全球购物
初中生自我评价
2014/02/01 职场文书
对孩子的寄语
2014/04/09 职场文书
部门年终奖分配方案
2014/05/07 职场文书
身边的榜样活动方案
2014/08/20 职场文书
医院领导班子整改方案
2014/10/01 职场文书
2014年公务员退休工资改革方案
2014/10/01 职场文书
市场营销计划书
2015/01/17 职场文书
用 Python 定义 Schema 并生成 Parquet 文件详情
2021/09/25 Python
python编程实现清理微信重复缓存文件
2021/11/01 Python