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 相关文章推荐
jQuery添加/改变/移除CSS类及判断是否已经存在CSS
Aug 20 Javascript
使用AngularJS对路由进行安全性处理的方法
Jun 18 Javascript
JS上传图片预览插件制作(兼容到IE6)
Aug 07 Javascript
Angularjs CURD 详解及实例代码
Sep 14 Javascript
D3.js实现折线图的方法详解
Sep 21 Javascript
canvas绘制一个常用的emoji表情
Mar 30 Javascript
Bootstrap.css与layDate日期选择样式起冲突的解决办法
Apr 07 Javascript
vue中,在本地缓存中读写数据的方法
Sep 21 Javascript
vuex页面刷新后数据丢失的方法
Jan 17 Javascript
深入学习JavaScript 高阶函数
Jun 11 Javascript
如何通过vscode运行调试javascript代码
Jul 24 Javascript
详解如何在Canvas中添加事件的方法
Apr 17 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 set_magic_quotes_runtime() 函数过时解决方法
2010/07/08 PHP
PHP+JS+rsa数据加密传输实现代码
2011/03/23 PHP
使用php+Ajax实现唯一校验实现代码[简单应用]
2011/11/29 PHP
php登陆页的密码处理方式分享
2013/10/14 PHP
Php header()函数语法及使用代码
2013/11/04 PHP
PHP制作3D扇形统计图以及对图片进行缩放操作实例
2014/10/23 PHP
PHP使用内置函数生成图片的方法详解
2016/05/09 PHP
PDO的安全处理与事物处理方法
2016/10/31 PHP
laravel-admin 管理平台获取当前登陆用户信息的例子
2019/10/08 PHP
经典的解除许多网站无法复制文字的绝招
2006/12/31 Javascript
一个刚完成的layout(拖动流畅,不受iframe影响)
2007/08/17 Javascript
学习ExtJS 访问容器对象
2009/10/07 Javascript
JavaScript中OnLoad几种使用方法
2012/12/15 Javascript
使用GruntJS构建Web程序之Tasks(任务)篇
2014/06/06 Javascript
jquery text()方法取标签中的文本
2014/07/25 Javascript
MVC+jQuery.Ajax异步实现增删改查和分页
2020/12/22 Javascript
jQuery如何封装输入框插件
2016/08/19 Javascript
利用python分析access日志的方法
2016/10/26 Javascript
AngularJS实现的select二级联动下拉菜单功能示例
2017/10/25 Javascript
从零开始实现Vue简单的Toast插件
2018/12/03 Javascript
vue自定义指令之面板拖拽的实现
2019/04/14 Javascript
vue和better-scroll实现列表左右联动效果详解
2019/04/29 Javascript
VUE渲染后端返回含有script标签的html字符串示例
2019/10/28 Javascript
Vue路由对象属性 .meta $route.matched详解
2019/11/04 Javascript
vue2.0 获取从http接口中获取数据,组件开发,路由配置方式
2019/11/04 Javascript
python给微信好友定时推送消息的示例
2019/02/20 Python
应届大学生求职的自我评价
2013/11/17 职场文书
旅游与环境专业求职信
2014/06/05 职场文书
环境保护标语
2014/06/20 职场文书
优秀班集体事迹材料
2014/12/25 职场文书
自我推荐信怎么写
2015/03/24 职场文书
2016元旦文艺汇演主持词(开场白+结束语)
2015/12/03 职场文书
员工工作失职检讨书范文!
2019/07/03 职场文书
nginx如何将http访问的网站改成https访问
2021/03/31 Servers
golang 实现时间戳和时间的转化
2021/05/07 Golang
详解thinkphp的Auth类认证
2021/05/28 PHP