0

伙计们,我想同时向房间里的所有玩家发送回复..例如:关于某个玩家的分数更新等..我知道如何从服务器发送响应以响应扩展请求..我的客户端正在android环境中编码..

List<User> r=player.getRoomJoined().getUsersList();
    ext.send("handler_response_id",params,player.getRoomJoined().getUsersList());

但我不明白如何在客户端收到此响应。还有其他方法可以这样做。

临时担任主持人并向该房间的所有玩家发送主持人消息..但许多专家建议不要出于这些目的使用“MODERATOR_MESSAGE”事件..如果有人使用过这个..请帮助大家..我'我在这里真的很紧张..任何想法或帮助表示赞赏..提前非常感谢..

4

3 回答 3

1

我对 SFS 也比较陌生,但是如果你想为所有玩家更新分数之类的东西,你不能简单地使用房间变量用户变量来做到这一点吗?然后只需添加一个侦听器并处理事件 SFSEvent.ROOM_VARIABLES_UPDATE。您还可以在服务器端 afaik 上设置用户变量,因此您不必将分数的责任留给客户端。

如果您想使用事件而不是变量,我相信您必须在客户端注册事件类型侦听器。同样适用于其他变量更新:

sfs.addEventListener(SFSEvent.USER_VARIABLES_UPDATE, onUserVarsUpdate);

还可以在这里快速查看 API 文档

http://docs2x.smartfoxserver.com/api-docs/javadoc/client/

似乎有一些有前途的事件类型,如 OBJECT_MESSAGE。

希望这有任何帮助。

于 2014-05-12T12:25:15.510 回答
0

还有另一种简单的方法可以做到这一点..

Zone myzone;

@Override
    public void handleClientRequest(User user, ISFSObject isfso) 
{
 myzone=getParentExtension().getParentZone();

// do whatever you want here..ie the server code..

// and while sending the response..

  List<User> recipients=(List<User>)myzone.getUserList();
                 ade=(AdminExtension) getParentExtension();
                 ade.send("10", respobj, recipients);

}
于 2014-05-13T13:22:49.960 回答
0

为了更新给所有用户,你可以使用 send() 来交流或更新一些事件......我希望你明白......

于 2017-01-13T07:00:01.007 回答