Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/ionic-framework/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 直接从爱奥尼亚访问Hazelcast地图_Javascript_Ionic Framework_Hazelcast_Vert.x - Fatal编程技术网

Javascript 直接从爱奥尼亚访问Hazelcast地图

Javascript 直接从爱奥尼亚访问Hazelcast地图,javascript,ionic-framework,hazelcast,vert.x,Javascript,Ionic Framework,Hazelcast,Vert.x,我正在使用Vertx和Hazelcast,我想直接从Ionic应用程序中使用我的集群地图。我知道如何在我的应用程序和事件总线之间建立一个桥梁,但这只允许我访问事件总线。我没有找到直接访问集群管理器以便在不同的映射上注册侦听器的方法 有人知道如何做到这一点吗 谢谢大家! 没有现成的方法可以做到这一点。您需要实现一个服务器端组件,该组件: 1/在Hazelcast映射上注册侦听器 IMap<String, String> map = hz.getMap("somemap"); map.a

我正在使用Vertx和Hazelcast,我想直接从Ionic应用程序中使用我的集群地图。我知道如何在我的应用程序和事件总线之间建立一个桥梁,但这只允许我访问事件总线。我没有找到直接访问集群管理器以便在不同的映射上注册侦听器的方法

有人知道如何做到这一点吗


谢谢大家!

没有现成的方法可以做到这一点。您需要实现一个服务器端组件,该组件:

1/在Hazelcast映射上注册侦听器

IMap<String, String> map = hz.getMap("somemap");
map.addEntryListener(new MyEntryListener(), true);
2/将映射通知转发到eventbus

@Override
public void entryAdded(EntryEvent<String, String> event) {
  // Transform the HZ event into something usable by the browser (eg JSON object)
  JsonObject json = eventToJson(event)
  vertx.eventBus().send("somemap-entry-added", json);
}

我知道这可能是唯一的办法。问题是,在我的例子中,我必须在事件总线上为每个登录应用程序的用户注册一个消费者,以便分别向他们发送消息。在我看来,这听起来不像是一个可扩展的解决方案。然而,你的帖子回答了我的问题。为每个用户注册一个消费者没有什么错。如果您使用eventBuspublish而不是send,他们将接收消息。是的,我可以使用publish,但这不是预期的行为。我更关心的是事件总线可以处理的活动连接消费者的数量。但我想这取决于集群的大小,对吗?eventbus桥应该能够处理大量并发连接。试试看,谢谢你的帮助,@tsegismont: