伙计们我想同时向一个房间里的所有玩家发送回复。例如,关于某些玩家得分更新等等。我知道如何从服务器发送响应扩展名请求..我的客户端正在Android环境中编码..
List<User> r=player.getRoomJoined().getUsersList();
ext.send("handler_response_id",params,player.getRoomJoined().getUsersList());
但我不明白如何在客户端收到此回复。还有其他方法可以这样做。
临时担任主持人并向该房间内的所有玩家发送主持人消息......但许多专家建议不要将“MODERATOR_MESSAGE”事件用于这些目的。如果有人使用过这个..plz,请帮助他们。我在这里真的很紧张。任何想法或帮助赞赏。谢谢你提前很多..
答案 0 :(得分:1)
我对SFS也相对较新,但如果你想为所有玩家更新得分,你不能简单地使用房间变量或用户变量这样做?然后只需添加一个侦听器并处理事件SFSEvent.ROOM_VARIABLES_UPDATE。您还可以在服务器端设置用户变量,因此您不必将分数的责任留给客户。
如果你想使用事件而不是变量,我相信你必须在客户端注册事件类型监听器。同样适用于其他变量更新:
sfs.addEventListener(SFSEvent.USER_VARIABLES_UPDATE,onUserVarsUpdate);
此外,请快速查看API文档
http://docs2x.smartfoxserver.com/api-docs/javadoc/client/
似乎有一些有前途的事件类型,如OBJECT_MESSAGE。
希望这有任何帮助。
答案 1 :(得分: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);
}
答案 2 :(得分:0)
更新到所有用户,您可以使用send()来传达或更新某些事件...... 我希望你明白......