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控制iframe滚动的代码
Apr 10 Javascript
jQuery滚动加载图片效果的实现
Mar 06 Javascript
javascript时间函数大全
Jun 30 Javascript
jquery获取节点名称
Apr 26 Javascript
纯JS代码实现一键分享功能
Apr 20 Javascript
Bootstrap表格和栅格分页实例详解
May 20 Javascript
JavaScript中style.left与offsetLeft的使用及区别详解
Jun 08 Javascript
ES6中箭头函数的定义与调用方式详解
Jun 02 Javascript
Vue实现动态添加或者删除对象和对象数组的操作方法
Sep 21 Javascript
详解mpvue开发微信小程序基础知识
Sep 23 Javascript
微信小程序实现拼图小游戏
Oct 22 Javascript
如何使用原生Js实现随机点名详解
Jan 06 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/06/14 PHP
一个php导出oracle库的php代码
2009/04/20 PHP
PHP模块 Memcached功能多于Memcache
2011/06/14 PHP
PHP获取一年中每个星期的开始和结束日期的方法
2015/02/12 PHP
PHP+Javascript实现在线拍照功能实例
2015/07/18 PHP
PHP仿微信多图片预览上传实例代码
2016/09/13 PHP
PHP开发实现快递查询功能详解
2019/04/08 PHP
javascript中SetInterval与setTimeout的定时器用法
2015/08/24 Javascript
jQuery超精致图片轮播幻灯片特效代码分享
2015/09/10 Javascript
js带缩略图的图片轮播效果代码分享
2015/09/14 Javascript
JavaScript trim 实现去除字符串首尾指定字符的简单方法
2016/12/27 Javascript
微信小程序五星评分效果实现代码
2017/04/06 Javascript
Vue2.0如何发布项目实战
2017/07/27 Javascript
vue实现动态给id赋值,点击事件获取当前点击的元素的id操作
2020/11/09 Javascript
python格式化字符串实例总结
2014/09/28 Python
状态机的概念和在Python下使用状态机的教程
2015/04/11 Python
Python实现把回车符\r\n转换成\n
2015/04/23 Python
Python类定义和类继承详解
2015/05/08 Python
python动态性强类型用法实例
2015/05/09 Python
python数组过滤实现方法
2015/07/27 Python
python查看FTP是否能连接成功的方法
2015/07/30 Python
Python判断变量是否为Json格式的字符串示例
2017/05/03 Python
Python简单实现两个任意字符串乘积的方法示例
2018/04/12 Python
Python中的类与类型示例详解
2019/07/10 Python
python 批量修改 labelImg 生成的xml文件的方法
2019/09/09 Python
python3 配置logging日志类的操作
2020/04/08 Python
python request 模块详细介绍
2020/11/10 Python
html5 touch事件实现页面上下滑动效果【附代码】
2016/03/10 HTML / CSS
美国领先的在线旅游网站:Orbitz
2018/11/05 全球购物
C++如何引用一个已经定义过的全局变量
2014/08/25 面试题
客户表扬信范文
2014/01/10 职场文书
求职信的正确写法
2014/07/10 职场文书
医院见习报告范文
2014/11/03 职场文书
2014年社区教育工作总结
2014/12/02 职场文书
给老师的一封感谢信
2015/01/20 职场文书
教师节作文之小学四年级
2019/09/03 职场文书