收到一条消息,但是回调却执行了多次,为什么?

问题描述

解决方案

现象是这样,当我将我的App直接结束掉再打开后,收到的消息是一条。但是如果我退出登录重新登录后,收到的消息却是两条,并且收到的消息数随着退出登录的次数而增加(PS:退出登录时没有直接结束App,而是将rootviewcontroller切换为了登陆页面)。
解决方案二:
看了一下环信的demo,我也是类似demo中的mainviewcontroller一样,将[[EaseMob sharedInstance].chatManager addDelegate:self delegateQueue:nil];注册了一下,并且注册之前也先remove掉一次
解决方案三:
但是demo中的mainviewcontroller有-dealloc方法,由于我项目是ARC,也尝试着将这个方法加上了却没有用
解决方案四:
回调执行次数是由代理注册次数决定的。

时间: 2024-09-04 19:56:13

收到一条消息,但是回调却执行了多次,为什么?的相关文章

收到一条消息后- (void)didReceiveMessage 会重复调用两次?

问题描述 收到一条消息后- (void)didReceiveMessage 会重复调用两次是什么情况啊? 两次收到的消息是一样的,messsageID都一样,求大神解救 解决方案 看一下 这个回调- (void)didReceiveMessage  所在的类,[[EaseMob sharedInstance].chatManager addDelegate:self delegateQueue:nil];这个代理写了几个

写了两个Java web应用,用activeMQ向另一个应用发消息,要每发两条才能收到一条消息!!!

问题描述 写了两个Java web应用,用activeMQ向另一个应用发消息,要每发两条才能收到一条消息!!! 如果接收消息的应用用main方法的形式接受消息,每条都能收到,就正常.用tomcat跑的话,要每发两条才收到一条.我要疯了! 解决方案 解决了,接收端代码有问题

通过注册消息监听来接收消息, EMMessageListener msgListener = new EMMessageListener() {...发两条消息运行一次

问题描述 测试了好久,我需要在会话列表页显示未读消息的数目...注册监听器,当收到消息时,通知adapter更新显示未读数,可是我每发两次消息,监听器才运行一次,不知道为什么... 解决方案 其他页面是否注册了消息监听,在onstop去注销,消息监听是每收到一条消息就会去执行的,你断点看看解决方案二:EMMessageListener是环信给的吗,我怎么找不到

IBM MQ onmessage方法 无法监控多条消息

问题描述 场景描述:有一个队列,队列里有多条消息.使用循环监控的话可以收到多条消息,例如:while(true){TextMessageme=(TextMessage)consumer.receive(100000);if(null!=me)System.out.println("^^^"+me.getText());}使用这种循环的方式是可以的.但是使用监听的方式每运行一次程序,才能收到一条消息.样例代码如下:publicvoidreceiveMessage()throwsJMSEx

在单聊的聊天界面中只有第一条消息能收到并显示,第二条有震动的消息提示,但是看不见

问题描述 解决方案 1.监听下didreceivemessage回调接口,看你第二条消息是否真的收到了 2.如果收到了,应该就是UI上的显示问题了,对照demo检查下代码

友盟推送 在手机端一个用户提交一个信息,其中包含一个“受理人”,让指定的受理人 收到一条推送消息

问题描述 友盟推送 在手机端一个用户提交一个信息,其中包含一个"受理人",让指定的受理人 收到一条推送消息 友盟推送 在手机端一个用户提交一个信息,其中包含一个"受理人",让指定的受理人 收到一条推送消息 怎么实现? 解决方案 首先针对某一个用户推送,必须知道对方的token(信鸽产生的token,每个手机不一样),所以你要有一个后台接口,你提交信息后,接口从数据库中查找这用户的token,然后调用信鸽的接口发推送

关于接收离线信息:当A未在线的时候 B给A发了信息,待A再登录的时候,收到这些离线消息在哪里可以监听到?

问题描述 当A未在线的时候 B给A发了信息,待A再登录的时候,收到这些离线消息在哪里可以监听到?打印log后发现 DemoHXSDKHelper.initEventListener();中EMNotifierEvent.Event.EventOfflineMessage 并未触发,而且在MainActivity中的onEvent(EMNotifierEvent event) {} 也未监听到触发EventOfflineMessage. 我应该到那里才可以监听到这一条(或多条)信息呢? 解决方案

Socket开发框架之消息的回调处理

在一般的Socket应用里面,很多时候数据的发送和接收是分开处理的,也就是我们发送一个消息,不知道这个请求消息什么时候得到应答消息,而且收到对应的应答消息的时候,如果操作界面的内容,也是需要特别处理的,因为它们和界面线程是不在一起的.如果我们在发送消息的时候,能够给一段回调的代码给收到应答消息的时候处理,那么就会方便很多.本文主要介绍如何在Socket应用里面,通过回调函数的处理,实现收到应答消息的时候能够调用对应的函数. 1.回调函数的设计 在上一篇的随笔里面,介绍了基于Json的Socket

如何做到“恰好一次”地传递数十亿条消息

在分布式领域中存在着三种类型的消息投递语义,分别是:最多一次(at-most-once).至少一次(at-least-once)和恰好一次(exactly-once).本文作者介绍了一个利用Kafka和RocksDB来构建的"恰好一次"消息去重系统的实现原理. 对任何一个数据流水线的唯一要求就是不能丢失数据.数据通常可以被延迟或重新排序,但不能丢失. 为了满足这一要求,大多数的分布式系统都能够保证"至少一次"的投递消息技术.实现"至少一次"的投递