GWTP(GWT平台)和远程事件

时间:2013-06-22 08:24:15

标签: events gwt-platform gwtp

对于使用RPC的普通GWT应用程序,我使用GWTEventService进行远程事件侦听/触发,但是如何使用GWT-Platform执行此操作。 是否有可能从服务器向特定客户端发起事件?例如,一个应用程序。

THX

1 个答案:

答案 0 :(得分: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());
            }
        }
    });

可以自由地向我询问更多细节。