0

对于带有 RPC 的普通 GWT 应用程序,我使用 GWTEventService 进行远程事件侦听/触发,但我如何使用 GWT-Platform 做到这一点。是否有可能将事件从服务器触发到特定客户端?例如聊天应用程序。

谢谢

4

1 回答 1

0

我们为每个用户使用了唯一的域。用户登录后,我们为用户生成了一个 GUID,并通过 RPC 从客户端加载它。然后我们为使用此 GUID 作为私有域 ID 的用户发送事件。

在服务器上:

// in CometMessageService
public void sendPrivateMessage(final String message, final Protocol.SessionId sessionId) {
    getEventService().addEvent(
            DomainFactory.getDomain(sessionId.toString()),
            new ServerMessageEvent(message));
}

在客户端:

RemoteEventService eventService =   RemoteEventServiceFactory.getInstance().getRemoteEventService();

eventService.addListener(DomainFactory.getDomain(privateDomain), new RemoteEventListener() {
        public void apply(Event event) {
            if(event instanceof ServerMessageEvent) {
                ServerMessageEvent messageEvent = (ServerMessageEvent) event;
                Info.display("User Specific Comet message", messageEvent.getMessage());
            }
        }
    });

请随时向我询问更多详细信息。

于 2013-08-23T08:27:15.803 回答