发布的 pubsub 消息不调用 additemeventlistener

     2023-02-24     123

关键词:

【中文标题】发布的 pubsub 消息不调用 additemeventlistener【英文标题】:additemeventlistener is not called for published pubsub message 【发布时间】:2015-11-03 14:55:08 【问题描述】:

我正在尝试通过 pubsub 机制实现 MUC,因此对于每个 MUC 组,我都会向多个人发送邀请。在MUC 的invitationReceivedListener 中,我得到了pubsub 节点并将ItemEventListener 添加到它。现在,当我在内部向组发送消息时,我将项目发布到 pubsub 节点,它在另一端收到(我可以从下面显示的 ejabberd 日志中看出)但没有调用 ItemEventListener。

为什么我的 itemEventListener 没有被调用? 我注意到的另一件事,在示例 ejabberd 日志下面,每次接收者登录时都会继续循环。所以它似乎继续多次向接收者发送相同的消息。

代码

//Subscribing to node
multiUserChatManager.addInvitationListener(new InvitationListener() 
        @Override
        public void invitationReceived(XMPPConnection connection_,
                MultiUserChat muc, String invitor, String reason, String password,Message msg) 
            try 

                System.out.println("in invitation Recieved----------------");
                //Subscribe to node
                LeafNode node=(LeafNode)pubSubMgr.getNode(parseName(muc.getRoom()));   
                addMessageListenerToPubSubNode(node);

                node.subscribe(username+"@abc.mydomain.com");
                System.out.println("Subscribing to node "+node.getId());
             catch (Exception e) 
                // TODO Auto-generated catch block
                e.printStackTrace();
             
        
    );


//Declaration of event Listener
private void addMessageListenerToPubSubNode(LeafNode node) 
    node.addItemEventListener(new ItemEventListener()
    @Override
    public void handlePublishedItems(ItemPublishEvent itemEvents) 
            List<PayloadItem> item = itemEvents.getItems();
            System.out.println("^^^^^^^^^^^^^^Received Item thru pubsub Item="+item.toString());
            for(PayloadItem i:item)
            
                System.out.println("message in the item on pubsub="+i.toXML());
            
        
    
    );


Ejabberd 日志

我可以在我的 ejabberd 日志中看到以下消息,但是,接收方未调用 ItemEventListener(+999999 是我的接收者,+888888 是我的发送者)。

2015-11-03 20:51:18.795 [debug] <0.2230.0>@ejabberd_c2s:send_text:1892 Send XML on stream = 
<<"<message from='pubsub.abc.mydomain.com' to='+999999@abc.mydomain.com' type='headline'>
   <event xmlns='http://jabber.org/protocol/pubsub#event'><items type='headline' node='03aa73745fa14e30bd72f66c9861f528'>
    <item id='5A689B43B9777'><x xmlns='jabber:x:oob'>
      <file1url>1446564035727125000.jpeg</file1url>
      <postuuid>5522fbbc-5c4d-46af-bc65-b0a4b5777cdc</postuuid>
    </x></item></items>
   </event>    
   <delay xmlns='urn:xmpp:delay' from='+888888@abc.mydomain.com/+888888' stamp='2015-11-03T15:20:35Z'>
   </delay>
</message>">>

【问题讨论】:

这可能是由于节点是在邀请监听器下定义的,使其成为局部变量吗? 【参考方案1】:

其实我找到了解决办法 问题是,每次应用程序打开时我都没有添加监听器。每次打开应用程序时我都需要添加事件监听器。解决了收不到消息的问题

【讨论】:

将 pubsub 消息转换为 websocket 事件

...cket事件【英文标题】:Convertingpubsubmessagestowebsocketevents【发布时间】:2021-11-2505:49:58【问题描述】:当前架构我有一个为特定资源生成事件的微服务(我们称之为发布者)。有一个Web应用程序显示资源的更新列表,但此视图不直... 查看详情

PubSub 不确认消息

...Sub不确认消息【英文标题】:PubSubisn\'tacknowledgingmessages【发布时间】:2020-08-0801:08:00【问题描述】:我有一个pubsub订阅(除了go-routines的数量之外的所有默认设置都是1000),并且由于某种原因,消息永远不会得到确认,因此会重... 查看详情

Pubsub API Explorer:返回的消息数据不正确

...确【英文标题】:PubsubAPIExplorer:Incorrectmessagedatareturned【发布时间】:2019-01-2911:46:27【问题描述】:我正在学习PubSubAPI。我向主题发布了几条消息,当我使用APIExplorer进行订阅者拉动时Method:projects.subscriptions.pull数据似乎与我实际... 查看详情

[已解决]Pubsub 推送订阅不确认消息

...息【英文标题】:Pubsubpushsubscriptionnotacknowledgingmessages【发布时间】:2021-03-0502:55:27【问题描述】:这是我的设置。订阅A是一种推送订阅,可将消息发布到云运行部署。该部署公开了一个HTTP端点,处理消息,将结果发布到主题B... 查看详情

云功能不向 PubSub 发送消息

...送消息【英文标题】:Cloudfunctiondoesn\'tsendmessagestoPubSub【发布时间】:2021-09-1900:46:05【问题描述】:总结:您好,我正在使用云功能作为由PubSub触发的异步后台工作程序。我有2个云函数,第一个将向CloudSQL发出请求,然后,对于... 查看详情

Google Cloud PubSub 不确认消息

...ubSub不确认消息【英文标题】:GoogleCloudPubSubnotackmessages【发布时间】:2019-07-0223:38:09【问题描述】:我们有基于GCPPubSub的发布者和订阅者系统。订阅者处理单个消息的时间很长,大约1分钟。我们已经将订阅者确认截止时间设置... 查看详情

GCP PubSub:通过 CURL 类型的请求发布消息

】GCPPubSub:通过CURL类型的请求发布消息【英文标题】:GCPPubSub:PublishmessageviaCURLtypeofrequest【发布时间】:2018-06-2023:47:07【问题描述】:有没有人有一个工作示例,说明如何通过CURL类型的命令直接从shell将消息发布到GCPPubSub主题?... 查看详情

在 null 上调用了方法“addItem”

】在null上调用了方法“addItem”【英文标题】:Themethod\'addItem\'wascalledonnull【发布时间】:2020-07-3109:09:28【问题描述】:我对这种情况有意见。你能帮助我吗?我正在接收此错误消息。发生异常。NoSuchMethodError(NoSuchMethodError:方法\'... 查看详情

具有 Cloud pubsub 的 Cloud Functions 触发消息排队

...英文标题】:CloudFunctionswithCloudpubsubtriggerqueuingthemessages【发布时间】:2021-09-0115:53:39【问题描述】:我们有一个带有Pubsub触发器的CloudFunctions,它将根据消息调用HTTP端点上的应用程序。当我们需要更新后端应用程序时,我们希望... 查看详情

带有spring的PubSub:知​​道消息是不是发布?

】带有spring的PubSub:知​​道消息是不是发布?【英文标题】:PubSubwithspring:knowthemessageispublishornot?带有spring的PubSub:知​​道消息是否发布?【发布时间】:2020-04-0314:29:55【问题描述】:我的发布者代码如下所示:publicabstractcla... 查看详情

为啥 GCP 存储桶上的新文件不发送 pubsub 消息?

...bsubmessage?为什么GCP存储桶上的新文件不发送pubsub消息?【发布时间】:2021-06-1313:31:27【问题描述】:我有一个存储桶,上面有通知:projects/_/buckets/mybucket/notificationConfigs/11CloudPub/Subtopi 查看详情

具有矩阵数量的 pubsub 未确认消息的尖峰 kubernetes HPA

...标题】:SpikykubernetesHPAwithmetricnumberofpubsubunackedmesssages【发布时间】:2019-04-2423:53:02【问题描述】:目前我们有一个数据流管道:apicall->googlepub/sub->BigQuery。api调用的数量将取决于网站的流量。我们创建了一个kubernetes部 查看详情

javascript发布订阅pubsub模式

...消息的时候,把订阅的消息push到指定消息的队列中,当发布者发布消息的时候,我们遍历执行push到指定消息队列中的回调事件。varPubsub=(function(){vareventObj={};return{subscribe:function(event,fn){eventObj[event]=fn},publish:function(event 查看详情

Firebase:我可以在 Firebase 云功能中“不确认”一条 PubSub 消息吗?

...anI"notacknowledge"aPubSubmessageinsideaFirebasecloudfunction?【发布时间】:2018-01-1012:10:04【问题描述】:我有一个Firebase云函数,它通过PubSub消息显示为triggered。该函数应该使用该消息或等待稍后使 查看详情

JSON 数据作为 PubSub 的消息

...据作为PubSub的消息【英文标题】:JSONdataasmessageforPubSub【发布时间】:2021-01-2309:36:30【问题描述】:我根据谷歌“将消息发布到主题”指南编写了以下代码:import("context""fmt""io""cloud.google.com/go/pubsub")funcpublishMessage(wio.Writer,projectID,... 查看详情

从 Google PubSub 中提取消息不起作用 - 权限被拒绝

...标题】:PullingmessagesfromGooglePubSubnotworking-Permissiondenied【发布时间】:2018-01-2202:40:44【问题描述】:我正在尝试从现有订阅中提取消息,但每次尝试都会收到PERMISSION_DENIED错误。但是,测试权限会为“pubsub.subscriptions.consume”返回... 查看详情

获取 Google Cloud PubSub 中单条消息的大小

...大小【英文标题】:GetthesizeofasinglemessageinGoogleCloudPubSub【发布时间】:2021-05-1806:00:34【问题描述】:我有一个设置,我将消息发布到GoogleCloudPubSub服务。我希望获取我发布到PubSub的每条消息的大小。因此,为此,我确定了以下方... 查看详情

为啥 PubSub 订阅在保留期到期后向死信主题发布消息

】为啥PubSub订阅在保留期到期后向死信主题发布消息【英文标题】:WhyPubSubsubscriptionpublishamessagetodeadlettertopicafterretentionperiodexpires为什么PubSub订阅在保留期到期后向死信主题发布消息【发布时间】:2020-12-1409:10:09【问题描述】:... 查看详情