即时通讯应用的RPC事件实现
1. 即时通讯应用基础
在即时通讯应用中,当用户输入消息并按下回车键后,视图会调用 MessengerServiceClientImpl 的 onSendMessage 方法。由于 Contact 和 Message 对象实现了 IsSerializable 接口,它们可以直接通过 sendMessage 调用传递给服务器。以下是一个简单的回调示例:
public void onSuccess(Object obj){
}
这个回调用于报告错误,并且作为向服务器发送消息调用的回调。
2. 添加RPC事件
2.1 即时通讯的协议需求
即时通讯需要基于事件的协议。对于桌面应用来说,基于 TCP/IP 套接字实现可能比较容易,但 Ajax 应用依赖于 HTTP,而 HTTP 不支持事件广播。HTTP 仅支持对客户端发起的请求发送响应,服务器在没有请求的情况下无法发送数据。
2.2 不同应用的协议差异
并非所有的 RPC 实现都需要 RPC 事件,只有特定的应用才需要。以电子邮件客户端为例,它在桌面和网页上都很常见,通常不使用基于事件的协议。电子邮件客户端通过定期检查从服务器批量检索电子邮件数据,并将邮件显示给用户。用户习惯了批量检索邮件,甚至在应用中会有绕过等待并发起检查的按钮。
<
基于RPC的即时通讯事件实现
超级会员免费看
订阅专栏 解锁全文
479

被折叠的 条评论
为什么被折叠?



