eventbus如何在Angular5中使用
作者
这篇文章将为大家详细讲解有关eventbus如何在Angular5中使用,文章内容质量较高,因此小编分享给大家做个参考,希望大家阅读完这篇文章后对相关知识有一定的了解。
1.package.json中
"dependencies":{ ... "vertx3-eventbus-client":"3.5.2", },
然后 npm install,或者:
npminstallvertx3-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:
declarevarEventBus:any;
4.创建eventbus实例,监听接口以及发送消息
//创建实例 vareb=newEventBus('http://localhost:8080/eventbus'); eb.onopen=function(){ //注册监听器用来接受消息 eb.registerHandler('some-address',function(error,message){ console.log('receivedamessage:'+JSON.stringify(message)); }); //发送消息 eb.send('some-address',{name:'tim',age:587}); }
更多信息请参考这里 https://vertx.io/docs/vertx-web/java/
注:
对于需要发送消息来接受的消息,需要先监听,然后再发送消息。对于一直推送的消息,不需要发送。
代码实例如下:
RegisterHandler(key,id,callback){ constaddress='***.'+key+'.'+id; if(typeof(this.eventBus[key])==='undefined'||!this.eventBus[key]){ this.eventBus[key]=newEventBus(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){ vardata=''; constaddress=***.'+key+'.'+id; if(typeof(this.eventBus[key])==='undefined'||!this.eventBus[key]){ this.eventBus[key]=newEventBus(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; }
关于eventbus如何在Angular5中使用就分享到这里了,希望以上内容可以对大家有一定的帮助,可以学到更多知识。如果觉得文章不错,可以把它分享出去让更多的人看到。
目录
推荐阅读
0 条评论
本站已关闭游客评论,请登录或者注册后再评论吧~