我有一个四人乒乓球游戏,当一个玩家断开连接时(由于任何原因,接到电话,无聊,赶上公共汽车),其他玩家可以继续玩。但是我希望那个人能够在他的电话结束后重新连接,有没有人知道我怎么能把它拉掉呢?
当两名球员进化后,我会重新邀请那个人,但在这种情况下我该怎么办呢?
编辑: 我忘了提到我正在使用Game Center API。所以我使用匹配对象向玩家发送数据,但是在玩家断开连接之后匹配仍然有效,如果没有,是否有办法重新加入比赛?
答案 0 :(得分:1)
1)创建一个键,将此用户定义为此游戏的一部分(可能是与该游戏的所有玩家共享的UUID以及y组件的用户x?)
2)搜索在应用程序被中断后重新启动应用程序的方法
3)重新启动,将唯一密钥发送到服务器,重新加入游戏
答案 1 :(得分:0)
也许你的游戏有用户名?所以,如果玩家断开连接,那么当他连接到服务器时再次出现,检查该用户名是否在之前的任何游戏/房间中?注意:这意味着用户名应该是唯一的。
否则请执行某种userId系统,其中每个注册到您游戏的新用户都会获得一个从前一个用户增加的号码以进行注册保存该客户端的数字,如来自浏览器的Cookie,并在断开连接的玩家加入时将该号码发送到服务器试。
例如,可以通过对已保存文件进行逆向工程或选择在其他手机上断开连接的用户名来轻松利用这两种方法。
最好的方法是使用某种用户名/密码系统,使所有用户名都是唯一的。
如果用户连接第二次/第三次,那么服务器应该发出某种消息,说该人当前已登录?
如果该人被中断,则发送断开连接数据包,或者如果您不能,则服务器可以处理此问题。连接将与服务器丢失,因此用户的状态将断开连接。或者不知何故连接仍然存在?也许UDP套接字?如果没有响应,服务器将尝试发送乒乓类型的数据包,显然用户与该应用程序断开连接,因此设置状态为断开连接等。