【问题标题】:Sending response to multiple players in smartfox server向 smartfox 服务器中的多个玩家发送响应
【发布时间】:2014-05-07 10:48:03
【问题描述】:

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

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

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

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

【问题讨论】:

    标签: android smartfoxserver


    【解决方案1】:

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

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

    sfs.addEventListener(SFSEvent.USER_VARIABLES_UPDATE, onUserVarsUpdate);

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

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

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

    希望这对您有所帮助。

    【讨论】:

      【解决方案2】:

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

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

      【讨论】:

        【解决方案3】:

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

        【讨论】:

          猜你喜欢
          • 1970-01-01
          • 2013-12-17
          • 2011-11-20
          • 1970-01-01
          • 2019-02-27
          • 1970-01-01
          • 2018-12-18
          • 2015-11-07
          • 1970-01-01
          相关资源
          最近更新 更多