国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 語言 > JavaScript > 正文

JavaScript實(shí)現(xiàn)HTML5游戲斷線自動重連的方法

2024-05-06 15:26:33
字體:
供稿:網(wǎng)友

斷線重連的需求一斷線重連原理二游戲內(nèi)自動重連不刷新三刷新游戲自動重連重連數(shù)據(jù)Locationreplace重置url重連四實(shí)際項(xiàng)目中處理重連機(jī)制最后的總結(jié)斷線重連的需求

尤其是手機(jī)上,會因?yàn)榫W(wǎng)絡(luò)的不穩(wěn)定或者其他原因,導(dǎo)致用戶的socket鏈接斷開。這個時(shí)候如果直接讓玩家退出游戲,重新登錄,無疑是非常影響用戶體驗(yàn)的事情。所以根據(jù)這個需求,就有需要程序來實(shí)現(xiàn)斷線后自動重連回去的技術(shù),是用戶能夠再次快速開始游戲進(jìn)行戰(zhàn)斗。

一、斷線重連原理

原來其實(shí)很簡單,就是在斷線的時(shí)候,根據(jù)用戶的點(diǎn)擊(有些時(shí)間短的就不用點(diǎn)擊,默認(rèn)是自動重連回來),程序自動識別,是要刷新重新進(jìn)入游戲還是幫用戶自動重連。客戶端會根據(jù)自動重連標(biāo)記,幫用戶自動做事情。比如自動登陸、選角色、進(jìn)入場景、請求同步后臺數(shù)據(jù)等等。

根據(jù)實(shí)現(xiàn)機(jī)制,大致可以分兩種實(shí)現(xiàn)方法。主要是游戲內(nèi)自動重連(不刷新)和刷新游戲自動重連,后面會詳細(xì)講兩種實(shí)現(xiàn)機(jī)制,以及相關(guān)的利弊。

二、游戲內(nèi)自動重連(不刷新)

這種是比較難的,因?yàn)椴凰⑿掠螒颍敲磿驗(yàn)橐欢螘r(shí)間的斷開游戲,導(dǎo)致客戶端數(shù)據(jù)跟服務(wù)器數(shù)據(jù)不同步了。比如怪物的位置、獲得的獎勵、進(jìn)度等等。這些需要一開始就設(shè)計(jì)好,如果策劃在后期要求加這個,那幾乎是無法實(shí)現(xiàn)的,改動太大了。所以假設(shè)要這么多,大概是類似下面的做法。(如果真要詳細(xì),得一篇新的Blog了:)

1. 客戶端和服務(wù)端協(xié)定好那些數(shù)據(jù)需要客戶端自己同步

2. 斷線多久內(nèi)可以自動重連(策劃以及技術(shù)上的實(shí)現(xiàn)來互相評估)

3. 服務(wù)端提供自動重連的協(xié)議,同時(shí)用戶斷線第一時(shí)間不應(yīng)該就銷毀掉相關(guān)數(shù)據(jù)(這里比較復(fù)雜,比如自動戰(zhàn)斗是否要一直在服務(wù)器掛著,以及其他的一些關(guān)聯(lián)操作)

4. 客戶端不刷新游戲,使用新接口重新連接服務(wù)器,自動更新和同步相應(yīng)的數(shù)據(jù)(比如同步怪物位置或者其他人物位置等等)

這種技術(shù)一般用于回合制之類的游戲,一般不涉及戰(zhàn)斗系統(tǒng)。如果arpg的話,只能短暫的時(shí)間內(nèi)可以自動重連,不然的話變數(shù)太大。或者需要做一些變種,比如單純場景的怪物之類的刷新下,但是世界boss之類的場景就得重新載入之類的特殊處理。

三、刷新游戲自動重連

我個人感覺這個是簡單粗暴又實(shí)用的做法。大部分游戲都適合使用,只要一刷新,游戲的數(shù)據(jù)都沒了,全部重新開始,客戶端只需要根據(jù)標(biāo)記來做一些自動化的操作,容易很多。,同時(shí)服務(wù)器也不用更改,穩(wěn)定也不容易出錯。唯一不好的就是用戶體驗(yàn)會稍微差一些。

重連數(shù)據(jù)

字符串?dāng)?shù)據(jù):

//ip + 用戶標(biāo)識 + 服id + 服名字 (數(shù)據(jù)根據(jù)自己項(xiàng)目情況)var reload:string = ip + "#" + token + "#" + serverId + "#" +serverName;//后面的reload字符串都是這里的內(nèi)容            
發(fā)表評論 共有條評論
用戶名: 密碼:
驗(yàn)證碼: 匿名發(fā)表

圖片精選

主站蜘蛛池模板: 阳信县| 泰安市| 黎城县| 平定县| 新田县| 德化县| 马边| 马公市| 微山县| 许昌市| 甘谷县| 阿拉善右旗| 准格尔旗| 泸溪县| 天门市| 襄城县| 宁海县| 乌恰县| 平舆县| 台安县| 乐昌市| 敖汉旗| 永德县| 东海县| 仁布县| 宜兴市| 崇阳县| 梧州市| 莎车县| 乌鲁木齐市| 桂阳县| 福泉市| 尼木县| 台南市| 西充县| 石景山区| 久治县| 同德县| 盐山县| 青阳县| 镇远县|