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中使用了document和window哪些属性和方法小结
Sep 13 Javascript
jquery 删除cookie失效的解决方法
Nov 12 Javascript
jsPDF生成pdf后在网页展示实例
Jan 16 Javascript
javascript实现无限级select联动菜单
Jan 02 Javascript
深入探密Javascript数组方法
Jan 08 Javascript
基于Flowplayer打造一款免费的WEB视频播放器附源码
Sep 06 Javascript
深入理解Ajax的get和post请求
Jun 02 Javascript
jQuery实现的瀑布流加载效果示例
Sep 13 Javascript
关于jQuery.ajax()的jsonp碰上post详解
Jul 02 jQuery
Vue自定义过滤器格式化数字三位加一逗号实现代码
Mar 23 Javascript
JS代码屏蔽F12,右键,粘贴,复制,剪切,选中,操作实例
Sep 17 Javascript
javascript实现滚轮轮播图片
Dec 13 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详细彻底学习Smarty
2008/03/27 PHP
PHP给文字内容中的关键字进行套红处理
2016/04/12 PHP
使用php完成常见的文件上传功能(推荐)
2017/01/13 PHP
PHP unlink与rmdir删除目录及目录下所有文件实例代码
2018/02/07 PHP
一个简单的js渐显(fadeIn)渐隐(fadeOut)类
2010/06/19 Javascript
javascript动态向网页中添加表格实现代码
2014/02/19 Javascript
js 中将多个逗号替换为一个逗号的代码
2014/06/07 Javascript
JavaScript跨域方法汇总
2014/10/16 Javascript
原生javascript实现解析XML文档与字符串
2016/03/01 Javascript
ashx文件获取$.ajax()方法发送的数据
2016/05/26 Javascript
JS Select下拉框(支持输入模糊查询)
2017/02/04 Javascript
Bootstrap表单制作代码
2017/03/17 Javascript
js获取当前周、上一周、下一周日期
2017/03/19 Javascript
vue 实现 tomato timer(蕃茄钟)实例讲解
2017/07/24 Javascript
微信小程序模版渲染详解
2018/01/26 Javascript
angular基于ng-alain定义自己的select组件示例
2018/02/23 Javascript
基于JS实现一个随机生成验证码功能
2019/05/29 Javascript
layui表格 返回的数据状态异常的解决方法
2019/09/10 Javascript
基于javascript的无缝滚动动画实现2
2020/08/07 Javascript
[00:35]DOTA2上海特级锦标赛 VP战队宣传片
2016/03/04 DOTA
python采集百度百科的方法
2015/06/05 Python
RC4文件加密的python实现方法
2015/06/30 Python
Python利用Nagios增加微信报警通知的功能
2016/02/18 Python
python数值基础知识浅析
2019/11/19 Python
使用python实现数组、链表、队列、栈的方法
2019/12/20 Python
Matplotlib绘制雷达图和三维图的示例代码
2020/01/07 Python
Python数据结构dict常用操作代码实例
2020/03/12 Python
Python实现疫情通定时自动填写功能(附代码)
2020/05/27 Python
keras Lambda自定义层实现数据的切片方式,Lambda传参数
2020/06/11 Python
突袭HTML5之Javascript API扩展2—地理信息服务及地理位置API学习
2013/01/31 HTML / CSS
美国最大的在线寄售和旧货店:Swap.com
2018/08/27 全球购物
团拜会策划方案
2014/06/07 职场文书
励志演讲稿500字
2014/08/21 职场文书
2015年幼儿园保育员工作总结
2015/04/23 职场文书
Python OpenCV快速入门教程
2021/04/17 Python
HTML中的表格元素介绍
2022/02/28 HTML / CSS