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的变量作用域深入理解
Oct 25 Javascript
在JavaScript中处理时间之setMinutes()方法的使用
Jun 11 Javascript
使用BootStrap实现用户登录界面UI
Aug 10 Javascript
原生js实现tab选项卡切换
Mar 23 Javascript
Bootstrap 响应式实用工具实例详解
Mar 29 Javascript
浅谈关于axios和session的一些事
Jul 13 Javascript
微信小程序实现分享到朋友圈功能
Jul 19 Javascript
原生JS实现逼真的图片3D旋转效果详解
Feb 16 Javascript
Vue多环境代理配置方法思路详解
Jun 21 Javascript
详解vue 自定义组件使用v-model 及探究其中原理
Oct 11 Javascript
Vue2.X和Vue3.0数据响应原理变化的区别
Nov 07 Javascript
JavaScript 防篡改对象的用法示例
Apr 24 Javascript
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
php桌面中心(一) 创建数据库
2007/03/11 PHP
PHP程序员编程注意事项
2008/04/10 PHP
过滤掉PHP数组中的重复值的实现代码
2011/07/17 PHP
计算php页面运行时间的函数介绍
2013/07/01 PHP
基于PHP给大家讲解防刷票的一些技巧
2015/11/18 PHP
php 文件下载 出现下载文件内容乱码损坏的解决方法(推荐)
2016/11/16 PHP
基于JQuery实现相同内容合并单元格的代码
2011/01/12 Javascript
Jquery Change与bind事件代码
2011/09/29 Javascript
基于jquery的文本框与autocomplete结合使用(asp.net+json)
2012/05/30 Javascript
javascript中全局对象的parseInt()方法使用介绍
2013/12/19 Javascript
js中文逗号转英文实现
2014/02/11 Javascript
js获取元素相对窗口位置的实现代码
2014/09/28 Javascript
浅谈Javascript 数组与字典
2015/01/29 Javascript
JavaScript学习笔记--常用的互动方法
2016/12/07 Javascript
jQuery操作json常用方法示例
2017/01/04 Javascript
无限循环轮播图之运动框架(原生JS实现)
2017/10/01 Javascript
基于 Vue 实现一个酷炫的 menu插件
2017/11/14 Javascript
不使用 JS 匿名函数理由
2017/11/17 Javascript
浅谈webpack性能榨汁机(打包速度优化)
2019/01/09 Javascript
nodejs分离html文件里面的js和css的方法
2019/04/09 NodeJs
JavaScript 几种循环方式以及模块化的总结
2020/09/03 Javascript
jquery实现拖拽添加元素功能
2020/12/01 jQuery
[20:46]Ti4循环赛第三日VG vs DK
2014/07/12 DOTA
Python3中的2to3转换工具使用示例
2015/06/12 Python
python 处理数字,把大于上限的数字置零实现方法
2019/01/28 Python
Python使用MyQR制作专属动态彩色二维码功能
2019/06/04 Python
css3中背景尺寸background-size详解
2014/09/02 HTML / CSS
CSS3不透明度实例讲解
2016/04/26 HTML / CSS
英国最大线上综合鞋类商城:Office
2017/12/08 全球购物
英国邮购活的植物主要供应商:Gardening Direct
2019/01/28 全球购物
linux面试题参考答案(9)
2015/01/07 面试题
销售行业个人求职自荐信
2013/09/25 职场文书
致长跑运动员加油稿
2014/02/20 职场文书
项目经理岗位职责范本
2015/04/01 职场文书
庆祝教师节新闻稿
2015/07/17 职场文书
如何用threejs实现实时多边形折射
2021/05/07 Javascript