Angular5集成eventbus的示例代码


Posted in Javascript onJuly 19, 2018

1.package.json中

"dependencies": {
   ...
  "vertx3-eventbus-client": "3.5.2",
 },

然后  npm install,或者:

npm install vertx3-eventbus-client@3.5.2

2.angular-cli.json中

"scripts": [
     ...
    "../node_modules/vertx3-eventbus-client/vertx-eventbus.js"
   ],

3.创建一个eventbus.service.ts用来通信

导入eventbus:

import { EventBus } from 'vertx3-eventbus-client';

声明eventbus:

declare var EventBus: any;

4.创建eventbus实例,监听接口以及发送消息

//创建实例
var eb = new EventBus('http://localhost:8080/eventbus');

eb.onopen = function() {
 //注册监听器用来接受消息
 eb.registerHandler('some-address', function(error, message) {
  console.log('received a message: ' + JSON.stringify(message));
 });

 //发送消息
 eb.send('some-address', {name: 'tim', age: 587});

}

更多信息请参考这里 https://vertx.io/docs/vertx-web/java/

注:

对于需要发送消息来接受的消息,需要先监听,然后再发送消息。
对于一直推送的消息,不需要发送。

代码实例如下:

RegisterHandler(key, id, callback) {
    const address = '***.' + key + '.' + id;
    if (typeof (this.eventBus[key]) === 'undefined' || !this.eventBus[key]) {
      this.eventBus[key] = new EventBus(environment.eventbusUrl);
    }
    if (this.eventBus[key].state === EventBus.OPEN) {
      this.eventBus[key].registerHandler(address, callback);
    } else {
      const $this = this;
      this.eventBus[key].onopen = function () {
        $this.eventBus[key].registerHandler(address, callback)
      }
    }
  }

Send(key, id) {
    var data = '';
    const address = ***.' + key + '.' + id;
    if (typeof (this.eventBus[key]) === 'undefined' || !this.eventBus[key]) {
      this.eventBus[key] = new EventBus(environment.eventbusUrl);
    }
    if (this.eventBus[key].state === EventBus.OPEN) {
      this.eventBus[key].send(address, data)
    } else {
      const $this = this;
      this.eventBus[key].onopen = function () {
        $this.eventBus[key].send(address, data)
      }
    }
  }

closeEventBus(key) {
    if (typeof (this.eventBus[key]) !== 'undefined' && this.eventBus[key] && this.eventBus[key].state === EventBus.OPEN) {
      this.eventBus[key].close();
    }
    this.eventBus[key] = null;
}

在组件ngOnDestroy中调用closeEventBus关闭eventbus。

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持三水点靠木。

Javascript 相关文章推荐
json跟xml的对比分析
Jun 10 Javascript
jquery BS,dialog控件自适应大小
Jul 06 Javascript
JSON.parse 解析字符串出错的解决方法
Jul 08 Javascript
JavaScript中的prototype.bind()方法介绍
Apr 04 Javascript
影响jQuery使用的14个方面
Sep 01 Javascript
jQuery之DOM对象和jQuery对象的转换与区别分析
Jan 08 Javascript
详解Bootstrap glyphicons字体图标
Jan 04 Javascript
基于JS实现EOS隐藏错误提示层代码
Apr 25 Javascript
利用js编写响应式侧边栏
Sep 17 Javascript
jQuery+ThinkPHP+Ajax实现即时消息提醒功能实例代码
Mar 21 jQuery
微信小程序获取循环元素id以及wx.login登录操作
Aug 17 Javascript
微信小程序使用wxParse解析html的方法示例
Jan 17 Javascript
微信小程序实现弹出菜单
Jul 19 #Javascript
微信小程序实现之手势锁功能实例代码
Jul 19 #Javascript
React组件重构之嵌套+继承及高阶组件详解
Jul 19 #Javascript
微信小程序实现折叠展开效果
Jul 19 #Javascript
详解Angularjs 自定义指令中的数据绑定
Jul 19 #Javascript
微信小程序实现天气预报功能
Jul 18 #Javascript
vue代理和跨域问题的解决
Jul 18 #Javascript
You might like
PHP+swoole实现简单多人在线聊天群发
2016/01/19 PHP
PHP7+Nginx的配置与安装教程详解
2016/05/10 PHP
PHP实现的折半查询算法示例
2017/10/09 PHP
PHP自动生成缩略图函数的源码示例
2019/03/18 PHP
laravel-admin表单提交隐藏一些数据,回调时获取数据的方法
2019/10/08 PHP
非主流的textarea自增长实现js代码
2011/12/20 Javascript
js中有关IE版本检测
2012/01/04 Javascript
ASP.NET中AJAX 调用实例代码
2012/05/03 Javascript
jQuery操作 input type=checkbox的实现代码
2012/06/14 Javascript
JsRender实用入门教程
2014/10/31 Javascript
js基于cookie方式记住返回页面用法示例
2016/05/27 Javascript
Vue2实现组件props双向绑定
2016/12/02 Javascript
微信小程序 出现错误:{"baseresponse":{"errcode":-80002,"errmsg":""}}解决办法
2017/02/23 Javascript
bootstrap实现动态进度条效果
2017/03/08 Javascript
如何抽象一个Vue公共组件
2017/10/17 Javascript
js Dom实现换肤效果
2017/10/21 Javascript
p5.js入门教程之键盘交互
2018/03/19 Javascript
node实现的爬虫功能示例
2018/05/04 Javascript
JavaScript面向对象继承原理与实现方法分析
2018/08/09 Javascript
react native 获取地理位置的方法示例
2018/08/28 Javascript
微信小程序实现加入购物车滑动轨迹
2020/11/18 Javascript
python模块restful使用方法实例
2013/12/10 Python
跟老齐学Python之坑爹的字符编码
2014/09/28 Python
Python实现按中文排序的方法示例
2018/04/25 Python
python3中获取文件当前绝对路径的两种方法
2018/04/26 Python
pycharm 实现显示project 选项卡的方法
2019/01/17 Python
Python3实现的判断环形链表算法示例
2019/03/07 Python
Python OpenCV之图片缩放的实现(cv2.resize)
2019/06/28 Python
python读取图片的几种方式及图像宽和高的存储顺序
2020/02/11 Python
聊聊python中的异常嵌套
2020/09/01 Python
Python使用Turtle模块绘制国旗的方法示例
2021/02/28 Python
Volcom法国官网:美国冲浪滑板品牌
2017/05/25 全球购物
error和exception有什么区别
2012/10/02 面试题
药品开票员岗位职责
2015/04/15 职场文书
教师调动申请报告
2015/05/18 职场文书
同学聚会感言一句话
2015/07/30 职场文书