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 import css实例代码
Jul 18 Javascript
JQuery 1.3.2以上版本中出现pareseerror错误的解决方法
Jan 11 Javascript
模仿百度三维地图的js数据分享
May 12 Javascript
Javacript实现颜色梯度变化和渐变的效果代码
May 31 Javascript
在每个匹配元素的外部插入新元素的方法
Dec 20 Javascript
jquery鼠标放上去显示悬浮层即弹出定位的div层
Apr 25 Javascript
js实现页面跳转重定向的几种方式
May 29 Javascript
SeaJS 与 RequireJS 的差异对比
Dec 08 Javascript
jQuery+HTML5+CSS3制作支持响应式布局时间轴插件
Aug 10 Javascript
JQuery实现table中tr上移下移的示例(超简单)
Jan 08 jQuery
Vue表单输入绑定的示例代码
Nov 01 Javascript
JavaScript ECMA-262-3 深入解析(二):变量对象实例详解
Apr 25 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
《魔兽争霸3:重制版》翻车了?你想要的我们都没有
2019/11/07 魔兽争霸
用PHP和Shell写Hadoop的MapReduce程序
2014/04/15 PHP
ThinkPHP使用smarty模板引擎的方法
2014/07/01 PHP
PHP整合PayPal支付
2015/06/11 PHP
yii2 开发api接口时优雅的处理全局异常的方法
2019/05/14 PHP
实测jquery data()如何存值
2013/08/18 Javascript
原生javascript实现的分页插件pagenav
2014/08/28 Javascript
jQuery 1.9移除了$.browser可以使用$.support来替代
2014/09/03 Javascript
jQuery实现统计复选框选中数量
2014/11/24 Javascript
Underscore.js常用方法总结
2015/02/28 Javascript
jquery+php实现滚动的数字特效
2015/11/29 Javascript
JS日期对象简单操作(获取当前年份、星期、时间)
2016/10/26 Javascript
AngularJS定时器的使用与移除操作方法【interval与timeout】
2016/12/14 Javascript
微信小程序request请求后台接口php的实例详解
2017/09/20 Javascript
Node.js使用MySQL连接池的方法实例
2018/02/11 Javascript
vue使用vuex实现首页导航切换不同路由的方法
2019/05/08 Javascript
OpenLayers3加载常用控件使用方法详解
2020/09/25 Javascript
uni-app实现获取验证码倒计时功能
2020/11/01 Javascript
用实例说明python的*args和**kwargs用法
2013/11/01 Python
浅谈Python浅拷贝、深拷贝及引用机制
2016/12/15 Python
下载官网python并安装的步骤详解
2019/10/12 Python
django中media媒体路径设置的步骤
2019/11/15 Python
python Popen 获取输出,等待运行完成示例
2019/12/30 Python
python 如何把docker-compose.yaml导入到数据库相关条目里
2021/01/15 Python
利用CSS3的3D效果制作正方体
2020/03/10 HTML / CSS
彼得罗夫美国官网:Peter Thomas Roth美国(青瓜面膜)
2017/11/05 全球购物
中国双语服务优势的在线购票及活动平台:247tickets
2018/10/26 全球购物
耐克波兰官方网站:Nike波兰
2019/09/03 全球购物
如何减少垃圾回收让内存更加有效使用
2013/10/18 面试题
Java基础知识面试要点
2016/07/29 面试题
信息专业本科生个人的自我评价
2013/10/28 职场文书
幼儿园教师辞职信
2014/01/18 职场文书
市场营销专业大学生职业生涯规划文
2014/03/06 职场文书
教师师德师风自我剖析材料
2014/09/29 职场文书
创业计划书之便利店
2019/09/05 职场文书
redis 存储对象的方法对比分析
2021/08/02 Redis