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 相关文章推荐
提升PHP安全:8个必须修改的PHP默认配置
Nov 17 Javascript
angularjs基础教程
Dec 25 Javascript
js+css实现上下翻页相册代码分享
Aug 18 Javascript
js精美的幻灯片画集特效代码分享
Aug 29 Javascript
JavaScript脚本判断蜘蛛来源的方法
Sep 22 Javascript
jquery实现模拟百分比进度条渐变效果代码
Oct 29 Javascript
解决angular的post请求后SpringMVC后台接收不到参数值问题的方法
Dec 10 Javascript
轻松学习Javascript闭包函数
Dec 15 Javascript
使用travis-ci如何持续部署node.js应用详解
Jul 30 Javascript
JS中使用media实现响应式布局
Aug 04 Javascript
详解使用 Node.js 开发简单的脚手架工具
Jun 08 Javascript
浅谈javascript错误处理
Aug 11 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 checkbox 取值详细说明
2010/08/19 PHP
数据库中排序的对比及使用条件详解
2012/02/23 PHP
Zend Framework使用Zend_Loader组件动态加载文件和类用法详解
2016/12/09 PHP
用JQuery 实现的自定义对话框
2007/03/24 Javascript
js 用CreateElement动态创建标签示例
2013/11/20 Javascript
详解js的延迟对象、跨域、模板引擎、弹出层、AJAX【附实例下载】
2016/12/19 Javascript
微信小程序 JS动态修改样式的实现代码
2017/02/10 Javascript
利用Vue.js框架实现火车票查询系统(附源码)
2017/02/27 Javascript
使用bootstrap-paginator.js 分页来进行ajax 异步分页请求示例
2017/03/09 Javascript
使用 jQuery 实现表单验证功能
2017/07/05 jQuery
React Native使用百度Echarts显示图表的示例代码
2017/11/07 Javascript
vue短信验证性能优化如何写入localstorage中
2018/04/25 Javascript
vue 表单输入格式化中文输入法异常问题
2018/05/30 Javascript
详解React之父子组件传递和其它一些要点
2018/06/25 Javascript
jQuery轻量级表单模型验证插件
2018/10/15 jQuery
[56:29]Secret vs Optic 2018国际邀请赛小组赛BO2 第一场 8.18
2018/08/19 DOTA
[01:08:56]DOTA2-DPC中国联赛 正赛 Magma vs LBZS BO3 第一场 2月7日
2021/03/11 DOTA
python中sys.argv参数用法实例分析
2015/05/20 Python
python操作MySQL 模拟简单银行转账操作
2017/09/27 Python
python通过socket实现多个连接并实现ssh功能详解
2017/11/08 Python
Python字典创建 遍历 添加等实用基础操作技巧
2018/09/13 Python
Python内建序列通用操作6种实现方法
2020/03/26 Python
利用CSS3的border-radius绘制太极及爱心图案示例
2016/05/17 HTML / CSS
模特职业生涯规划范文
2014/02/26 职场文书
《天游峰的扫路人》教学反思
2014/04/25 职场文书
2014年服务行业工作总结
2014/11/18 职场文书
2014年党总支工作总结
2014/12/18 职场文书
开学典礼校长致辞
2015/07/29 职场文书
校园音乐节目广播稿
2015/08/19 职场文书
爱护环境建议书
2015/09/14 职场文书
利用ajax+php实现商品价格计算
2021/03/31 PHP
MySQL 表空间碎片的概念及相关问题解决
2021/05/07 MySQL
JavaScript如何优化逻辑判断代码详解
2021/06/08 Javascript
教你用Python+selenium搭建自动化测试环境
2021/06/18 Python
基于Python实现流星雨效果的绘制
2022/03/18 Python
MySQL 原理与优化之原数据锁的应用
2022/08/14 MySQL