2014-03-28 56 views
0

伙计们我想在同一时间向一个房间内的所有玩家发送回复..比如:关于某个玩家的分数更新等..我知道如何发送它从响应扩展request..My客户端服务器被编码在Android的环境..向smartfox服务器中的多个玩家发送回复

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

但我不知道如何在收到客户side..There此响应的其他方法这样做也是如此。

临时作为主持人并向该房间内的所有玩家发送主持人消息..但许多专家建议不要使用“MODERATOR_MESSAGE”事件来实现这些目的..如果有人使用过这个..plz, ..我在这里真正捏。任何想法或帮助赞赏..提前很多..

回答

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。

希望这有任何帮助。

+0

是的这种方式肯定可以使用...但有另一种简单的方法来做到这一点.. – AndroidMech

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); 

} 
0

更新到所有用户,您可以使用send()来对一些事件进行通信或更新... 我希望你明白...

相关问题