public class GlobalSendHelper
extends java.lang.Object
注意:如果已开通与Web版的互通(参见: ServerLauncher.bridgeEnabled
)
,则服务端消息发送建议使用本类,否则请使用 LocalSendHelper
。
ServerLauncher.bridgeEnabled
构造器和说明 |
---|
GlobalSendHelper() |
限定符和类型 | 方法和说明 |
---|---|
static void |
sendDataC2C(BridgeProcessor bridgeProcessor,
io.netty.channel.Channel session,
Protocal pFromClient,
java.lang.String remoteAddress,
ServerCoreHandler serverCoreHandler)
用方法用于服务端作为中转发送C2C类型的数据之用,此方法封装了服务端中转发送
C2C消息的所有逻辑(包括当接收者不在本机在线列表时的桥接处理、离线处理逻辑等)。
|
static void |
sendDataS2C(BridgeProcessor bridgeProcessor,
Protocal pFromClient,
MBObserver resultObserver)
用方法用于服务端向客户端主动发起的数据之用,此方法封装了服务端发送
S2C消息的所有逻辑(包括当接收者不在本机在线列表时的桥接处理等,但不包括离线处理逻辑——请据本方法的
返回值,在应用层决定如何进行离线处理)。
|
public static void sendDataC2C(BridgeProcessor bridgeProcessor, io.netty.channel.Channel session, Protocal pFromClient, java.lang.String remoteAddress, ServerCoreHandler serverCoreHandler) throws java.lang.Exception
注意:本方法不应由服务端的应用层调用,仅限MobileIMSDK框架内部使用。
bridgeProcessor
- 跨IM实例互通的桥接器对象session
- 应答包被回复的回话,也就是C2C消息的发出者对应的session句柄(不是消息接收者哦)pFromClient
- remoteAddress
- serverCoreHandler
- java.lang.Exception
MQProvider.publish(String)
,
LocalSendHelper#sendData(Channel, Protocal)
public static void sendDataS2C(BridgeProcessor bridgeProcessor, Protocal pFromClient, MBObserver resultObserver) throws java.lang.Exception
提示:本方法可用于应用层调用,从而实现服务端向客户端主动发送 消息的能力(且支持跨机器的消息能力)。
补充说明:当没有开启与Web的消息互通时,调用本方法,相当于
直接调用LocalSendHelper#sendData(Protocal)
bridgeProcessor
- 跨IM实例互通的桥接器对象,应用层可通过
ServerLauncherImpl.getInstance().getServerCoreHandler().getBridgeProcessor()
来获取此对象引用pFromClient
- 要发送的数据内容,请使用 ProtocalFactory.createCommonData(String, String, String
, boolean, String, int)
来生成Protocal对象resultObserver
- 因netty的异步化特征,发送数据在API层也是异步的,本参数
用于获得数据发送的结果通知(这是与MINA的区别之一)。服务端为了获得高并发、高性
能,失去传统网络编程同步调用时编码的便利也是在所难免(再也不是直接的函数返回值了
),开发者需适应之。参数sucess:false表示发送一定没有成功,true表示消息已成功送
成但因异步发送且是UDP的原因能否成功收到还得看服务端QoS的情况java.lang.Exception
- 发生任何异常时都会抛出OnlineProcessor.isOnline(String)
,
MQProvider.publish(String)
,
LocalSendHelper#sendData(Protocal)