文章详情

短信预约-IT技能 免费直播动态提醒

请输入下面的图形验证码

提交验证

短信预约提醒成功

怎么在Android中使用WebSocket实现一个多人游戏

2023-05-30 18:30

关注

今天就跟大家聊聊有关怎么在Android中使用WebSocket实现一个多人游戏,可能很多人都不太了解,为了让大家更加了解,小编给大家总结了以下内容,希望大家根据这篇文章可以有所收获。

webSocket流程

客户端开始连接------->服务端收到连接(保存客户端ip)--------->服务端向客户端发送连接成功消息

客户端发送消息(内容和服务端定义好,一般是json格式)----------服务端收到消息,根据想要的逻辑,决定是否推送给所有连接上的客户端

客户端收到推送消息,更新UI界面

Android接入

Android接入的话,直接用库吧,简单方便,我接入的是这个库:

compile 'com.koushikdutta.async:androidasync:2.+'

他的调用也很方便

AsyncHttpClient.getDefaultInstance().websocket("ws://test.ling.com:9588/", "9588", new AsyncHttpClient.WebSocketConnectCallback() {      @Override      public void onCompleted(Exception e, WebSocket webSocket) {        if (e != null) {          e.printStackTrace();          return;        }        //接收到消息的监听        webSocket.setStringCallback(new WebSocket.StringCallback() {          @Override          public void onStringAvailable(String s) {            runOnUiThread(new Runnable() {              @Override              public void run() {                //更新ui界面              }            });          }        });        //关闭链接的监听        webSocket.setClosedCallback(new CompletedCallback() {          @Override          public void onCompleted(Exception e) {          }        });        //发送内容到服务端        webSocket.send("测试测试");      }    });

是吧,很简单,就几个方法。下面开始说说,如何用websocket来搞多人游戏的思路,不过,我还没去试过啊,只是理论上的一种思路,应该可行,哈哈。

websocket开发多人游戏

简单点,我们搞一个像王者农药一样的,就是10个人在画面上,左5个,右5个,这就意味着有10个客户端啦,当客户端点击移动按钮,对应的人物在画面上就相应移动一点,当然,是10个客户端同时变化,你移动了,其他人也会看到你移动。那些打斗啊什么鬼的,我们先不管,我们先做好移动,其他的思路应该差不多。开始:

客户端开始连接服务端:发送姓名,服务端记录好这些信息。

 webSocket.send("{"code":1,"name":"A用户"}"); webSocket.send("{"code":1,"name":"B用户"}"); ······· webSocket.send("{"code":1,"name":"J用户"}");

服务端逻辑处理,当有10个人链接成功后,证明比赛要开始了,初始化10个玩家的位置,推送消息给所有玩家:

怎么在Android中使用WebSocket实现一个多人游戏

服务端推送的消息

正常来说,客户端在这个方法接收到上面的推送消息:

 //接收到消息的监听        webSocket.setStringCallback(new WebSocket.StringCallback() {          @Override          public void onStringAvailable(String s) {            runOnUiThread(new Runnable() {              @Override              public void run() {                //更新ui界面,把10个玩家的信息和位置显示在界面上              }            });          }        });

呐,现在10个玩家的位置都初始化了。然后,玩家开始移动,比如说A用户移动到100.100的位置,那客户端就发送:

webSocket.send("{"code":0,"name":"A用户","x":100,"y":100}");

服务端收到客户端发送的命令后,就根据内容更新列表啦,这时,A用户的位置就是改为100.100了。然后推送新的游戏信息给所有的客户端,客户端收到命令后,同样是更新界面,这时A用户的位置就改变啦。

怎么在Android中使用WebSocket实现一个多人游戏

看完上述内容,你们对怎么在Android中使用WebSocket实现一个多人游戏有进一步的了解吗?如果还想了解更多知识或者相关内容,请关注编程网行业资讯频道,感谢大家的支持。

阅读原文内容投诉

免责声明:

① 本站未注明“稿件来源”的信息均来自网络整理。其文字、图片和音视频稿件的所属权归原作者所有。本站收集整理出于非商业性的教育和科研之目的,并不意味着本站赞同其观点或证实其内容的真实性。仅作为临时的测试数据,供内部测试之用。本站并未授权任何人以任何方式主动获取本站任何信息。

② 本站未注明“稿件来源”的临时测试数据将在测试完成后最终做删除处理。有问题或投稿请发送至: 邮箱/279061341@qq.com QQ/279061341

软考中级精品资料免费领

  • 历年真题答案解析
  • 备考技巧名师总结
  • 高频考点精准押题
  • 2024年上半年信息系统项目管理师第二批次真题及答案解析(完整版)

    难度     813人已做
    查看
  • 【考后总结】2024年5月26日信息系统项目管理师第2批次考情分析

    难度     354人已做
    查看
  • 【考后总结】2024年5月25日信息系统项目管理师第1批次考情分析

    难度     318人已做
    查看
  • 2024年上半年软考高项第一、二批次真题考点汇总(完整版)

    难度     435人已做
    查看
  • 2024年上半年系统架构设计师考试综合知识真题

    难度     224人已做
    查看

相关文章

发现更多好内容

猜你喜欢

AI推送时光机
位置:首页-资讯-后端开发
咦!没有更多了?去看看其它编程学习网 内容吧
首页课程
资料下载
问答资讯