默认
发表评论 14
想开发IM:买成品怕坑?租第3方怕贵?找开源自已撸?尽量别走弯路了... 找站长给点建议
[已回复] MobileIMKSD移动端给MobileIMSDK-web端群发消息写在哪里
if(ServerLauncher.bridgeEnabled && !OnlineProcessor.isOnline(pFromClient.getTo()))
                                {
                                        logger.debug("[IMCORE<C2C>-桥接↑]>> 客户端"+pFromClient.getTo()+"不在线,数据[from:"+pFromClient.getFrom()
                                                        +",fp:"+pFromClient.getFp()+"to:"+pFromClient.getTo()+",content:"+pFromClient.getDataContent()
                                                        +"] 将通过MQ直发Web服务端(彼时在线则通过web实时发送、否则通过Web端进"
                                                        +"行离线存储)【第一阶段APP+WEB跨机通信算法】!");

                                        if(pFromClient.isQoS()
                                                        && QoS4ReciveDaemonC2B.getInstance().hasRecieved(pFromClient.getFp()))
                                        {
                                                needDelegateACK = true;
                                        }
                                        else
                                        {
                                                boolean toMQ = bridgeProcessor.publish(pFromClient.toGsonString());
                                                if(toMQ)
                                                {
                                                        logger.debug("[IMCORE<C2C>-桥接↑]>> 客户端"+remoteAddress+"的数据已跨机器送出成功【OK】。(数据[from:"+pFromClient.getFrom()
                                                                        +",fp:"+pFromClient.getFp()+",to:"+pFromClient.getTo()+",content:"+pFromClient.getDataContent()
                                                                        +"]【第一阶段APP+WEB跨机通信算法】)");

                                                        if(pFromClient.isQoS())
                                                                needDelegateACK = true;
                                                }
                                                else
                                                {
                                                        logger.debug("[IMCORE<C2C>-桥接↑]>> 客户端"+remoteAddress+"的数据已跨机器送出失败,将作离线处理了【NO】。(数据[from:"+pFromClient.getFrom()
                                                                        +",fp:"+pFromClient.getFp()+"to:"+pFromClient.getTo()+",content:"+pFromClient.getDataContent()
                                                                        +"]【第一阶段APP+WEB跨机通信算法】)");

                                                        boolean offlineProcessedOK = serverCoreHandler.getServerEventListener()
                                                                        .onTransBuffer_C2C_RealTimeSendFaild_CallBack(pFromClient.getTo()
                                                                                        , pFromClient.getFrom(), pFromClient.getDataContent(), pFromClient.getFp(), pFromClient.getTypeu());
                                                        if(pFromClient.isQoS() && offlineProcessedOK)
                                                        {
                                                                needDelegateACK = true;
                                                        }
                                                        else
                                                        {
                                                                logger.warn("[IMCORE<C2C>-桥接↑]>> 客户端"+remoteAddress+"的通用数据传输消息尝试实时发送没有成功,但上层应用层没有成" +
                                                                                "功(或者完全没有)进行离线存储,此消息将被服务端丢弃【第一阶段APP+WEB跨机通信算法】!");
                                                        }
                                                }
                                        }

                                        if(needDelegateACK)
                                        {
                                                boolean receivedBackSendSucess = LocalSendHelper.replyDelegateRecievedBack(session, pFromClient);
                                                if(receivedBackSendSucess)
                                                        logger.debug("[IMCORE<C2C>-桥接↑]【QoS_伪应答_C2S】向"+pFromClient.getFrom()+"发送"+pFromClient.getFp()
                                                                        +"的伪应答包成功,伪装from自:"+pFromClient.getTo()+"【第一阶段APP+WEB跨机通信算法】.");
                                        }

                                        QoS4ReciveDaemonC2B.getInstance().addRecieved(pFromClient);
                                }
我循环的调用这一段合理吗,这样调用之后,web端的为什么只有一个人能收到呢

即时通讯网 - 即时通讯开发者社区! 来源: - 即时通讯开发者社区!

上一篇:[已解决] 为何QoS4ReciveDaemonRoot中的暂存处理线程被设定在5分钟以后运行下一篇:[已回复] 有时候在MobileIMSDK客户端发送1条Web互通消息,服务端会收到3次重传?

本帖已收录至以下技术专辑

推荐方案
评论 14
引用:JackJiang 发表于 2018-03-29 10:57
你刚才在另一个帖子里说的,每次只有一个人能收到,那肯定是哪里用的不对。
因为GlobalSendHelper里的send ...

我是在sendDataC2C这里去循环发的,不知道问题出现在哪里了

QQ截图20180329110157.png (63.7 KB, 下载次数: 2593)

QQ截图20180329110157.png

QQ截图20180329110223.png (48.95 KB, 下载次数: 2782)

QQ截图20180329110223.png

微信截图_20180329110305.png (72.03 KB, 下载次数: 2607)

微信截图_20180329110305.png
web客户端怎么给移动端和web端的群发消息
ok,了解了,谢谢
引用:JackJiang 发表于 2018-03-29 12:11
MobileIMSDK-Web端那边,同样有函数,你看看下下面这个例子(跟3楼的是同样的逻辑,只是这里是Web端的实 ...

ok,了解了,谢谢
引用:JackJiang 发表于 2018-03-29 11:08
你的方法调用错了,你看看MobileIMSDK的API文档的说明,并再回头看看我贴在3楼的代码样例(仅供参考):
...

我现在调用了s2c的方式,在web端会收到多条消息,并且是隔一小会之后又收到一条,是什么情况呢
引用:401523591 发表于 2018-03-29 11:04
我是在sendDataC2C这里去循环发的,不知道问题出现在哪里了

ServerLauncherImpl.getInstance().getServerCoreHandler().getBridgeProcessor();这个方法是没有的,需要自己去写吗
有个问题,web端的用户在发送消息时,总是提示掉线了,是什么原因造成的呢
引用:JackJiang 发表于 2018-03-29 12:11
MobileIMSDK-Web端那边,同样有函数,你看看下下面这个例子(跟3楼的是同样的逻辑,只是这里是Web端的实 ...

有个问题,web端的用户在发送消息时,总是提示掉线了,是什么原因造成的呢
打赏楼主 ×
使用微信打赏! 使用支付宝打赏!

返回顶部