向smartfox服务器中的多个玩家发送响应

时间:2014-03-28 05:34:44

标签: android smartfoxserver

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

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

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

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

3 个答案:

答案 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()来传达或更新某些事件...... 我希望你明白......