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 面向对象特性
Dec 28 Javascript
一行代码告别document.getElementById
Jun 01 Javascript
js实现翻页后保持checkbox选中状态的实现方法
Nov 03 Javascript
js 获取坐标 通过JS得到当前焦点(鼠标)的坐标属性
Jan 04 Javascript
js闭包的用途详解
Nov 09 Javascript
Backbone.js框架中简单的View视图编写学习笔记
Feb 14 Javascript
jQuery easyUI datagrid 增加求和统计行的实现代码
Jun 01 Javascript
jQuery Easyui加载表格出错时在表格中间显示自定义的提示内容
Dec 08 Javascript
详解js中常规日期格式处理、月历渲染和倒计时函数
Dec 28 Javascript
EasyUI实现下拉框多选功能
Nov 07 Javascript
ES6/JavaScript使用技巧分享
Dec 14 Javascript
Node.js API详解之 repl模块用法实例分析
May 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
PHP日期时间函数的高级应用技巧
2009/05/16 PHP
php使用curl存储cookie的示例
2014/03/31 PHP
使用ThinkPHP+Uploadify实现图片上传功能
2014/06/26 PHP
Yii实现多数据库主从读写分离的方法
2014/12/29 PHP
对于Laravel 5.5核心架构的深入理解
2018/02/22 PHP
作为PHP程序员你要知道的另外一种日志
2018/07/30 PHP
学习ExtJS accordion布局
2009/10/08 Javascript
用Jquery.load载入页面实现局部刷新
2014/01/22 Javascript
PHP+mysql+Highcharts生成饼状图
2015/05/04 Javascript
jquery使整个div区域可以点击的方法
2015/06/24 Javascript
关于安卓手机微信浏览器中使用XMLHttpRequest 2上传图片显示字节数为0的解决办法
2016/05/17 Javascript
JavaScript实现QQ列表展开收缩扩展功能
2017/10/30 Javascript
H5实现手机拍照和选择上传功能
2019/12/18 Javascript
JS实现音乐导航特效
2020/01/06 Javascript
React实现评论的添加和删除
2020/10/20 Javascript
[50:27]Secret vs VG 2018国际邀请赛小组赛BO2 第二场 8.17
2018/08/20 DOTA
python启动办公软件进程(word、excel、ppt、以及wps的et、wps、wpp)
2009/04/09 Python
Python os模块介绍
2014/11/30 Python
Python脚本实现下载合并SAE日志
2015/02/10 Python
python的scikit-learn将特征转成one-hot特征的方法
2018/07/10 Python
Python实现注册、登录小程序功能
2018/09/21 Python
PyQt5 窗口切换与自定义对话框的实例
2019/06/20 Python
python文字和unicode/ascll相互转换函数及简单加密解密实现代码
2019/08/12 Python
python画蝴蝶曲线图的实例
2019/11/21 Python
python二元表达式用法
2019/12/04 Python
Python 内置变量和函数的查看及说明介绍
2019/12/25 Python
简单了解Java Netty Reactor三种线程模型
2020/04/26 Python
HTML5边玩边学(3)像素和颜色
2010/09/21 HTML / CSS
马歇尔耳机官网:Marshall Headphones
2020/02/04 全球购物
质检员的岗位职责
2013/11/15 职场文书
《学棋》教后反思
2014/04/14 职场文书
新郎婚礼答谢词
2015/01/04 职场文书
长江三峡导游词
2015/01/31 职场文书
预备党员个人总结
2015/02/14 职场文书
springboot使用Redis作缓存使用入门教程
2021/07/25 Redis
Python必备技巧之字符数据操作详解
2022/03/23 Python