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 相关文章推荐
jQuery之过滤元素操作小结
Nov 30 Javascript
jquery获取tr并更改tr内容示例代码
Feb 13 Javascript
javascript事件委托的方式绑定详解
Jun 10 Javascript
javascript实现检验的各种规则
Jul 31 Javascript
基于AngularJS实现页面滚动到底自动加载数据的功能
Oct 16 Javascript
Bootstrap图片轮播组件使用实例解析
Jun 30 Javascript
JS获取年月日时分秒的方法分析
Nov 28 Javascript
JavaScript实现的XML与JSON互转功能详解
Feb 16 Javascript
JS作用域链详解
Jun 26 Javascript
微信小程序中使用wxss加载图片并实现动画效果
Aug 13 Javascript
JavaScript中join()、splice()、slice()和split()函数用法示例
Aug 24 Javascript
JS实现判断数组是否包含某个元素示例
May 24 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与javascript对多项选择的处理
2006/10/09 PHP
PHP实现用户认证及管理完全源码
2007/03/11 PHP
关于php mvc开发模式的感想
2011/06/28 PHP
PHP 与 UTF-8 的最佳实践详细介绍
2017/01/04 PHP
ThinkPHP5.1框架数据库链接和增删改查操作示例
2019/08/03 PHP
php的命名空间与自动加载实现方法
2019/08/25 PHP
PHP Swoole异步Redis客户端实现方法示例
2019/10/24 PHP
浅谈PHP中的那些魔术常量
2020/12/02 PHP
javascript 树形导航菜单实例代码
2013/08/13 Javascript
javascript实现带节日和农历的日历特效
2015/02/01 Javascript
基于JS2Image实现圣诞树代码
2015/12/24 Javascript
jQuery Validate 无法验证 chosen-select元素的解决方法
2017/05/17 jQuery
JS 设置Cookie 有效期 检测cookie
2017/06/15 Javascript
vue实现微信分享朋友圈,发送朋友的示例讲解
2018/02/10 Javascript
angular6的响应式表单的实现
2018/10/10 Javascript
微信小程序实现图片翻转效果的实例代码
2019/09/20 Javascript
Python实现给文件添加内容及得到文件信息的方法
2015/05/28 Python
举例讲解Python中的迭代器、生成器与列表解析用法
2016/03/20 Python
Python OpenCV处理图像之图像直方图和反向投影
2018/07/10 Python
python3爬虫获取html内容及各属性值的方法
2018/12/17 Python
在Python 中实现图片加框和加字的方法
2019/01/26 Python
树莓派用python中的OpenCV输出USB摄像头画面
2019/06/22 Python
Python基于requests库爬取网站信息
2020/03/02 Python
如何使用Cython对python代码进行加密
2020/07/08 Python
python实现图像外边界跟踪操作
2020/07/13 Python
Pycharm常用快捷键总结及配置方法
2020/11/14 Python
CSS3实现莲花绽放的动画效果
2020/11/06 HTML / CSS
Looking4Parking美国:全球排名第一的机场停车比较品牌
2019/08/26 全球购物
购买原创艺术品:Zatista
2019/11/09 全球购物
请介绍一下Ant
2016/07/22 面试题
预备党员党课思想汇报
2014/01/13 职场文书
毕业典礼主持词大全
2014/03/26 职场文书
个人自荐书范文
2015/03/09 职场文书
文员岗位职责范本
2015/04/16 职场文书
2015年中学团委工作总结
2015/07/22 职场文书
MySQL 8.0 之不可见列的基本操作
2021/05/20 MySQL