簡體   English   中英

如何在Android中實現客戶端服務器以制作BINGO游戲,而不是聊天應用程序

[英]How to implement client server in android for making BINGO game, but not for chat application

我正在玩賓果游戲。 為此,我將通過wifi熱點連接兩個手機,並且網格應該共享給兩個客戶端,也就是說,兩個手機都應該看到網格。 我怎樣才能讓兩個客戶同時通過網格? 另外,如何在客戶端和服務器之間傳遞數字? 通過物體或其他東西,又如何? 另外,如何正確實現制作2個Java文件和Android的客戶端服務器應用程序? PS:我們沒有實現聊天應用程序。

賓果XML文件: https : //github.com/TanishaShrotriya/SDL/blob/master/activity_main_bingo.xml

Java文件: https//github.com/TanishaShrotriya/SDL/blob/master/MainActivity_bingo.java

您有幾種選擇。 首先,您需要確定哪種架構適合您。

客戶端/服務器(具有API的AWS實例,以及具有PUSH的Firebase)---這將使設備能夠在打開時獲取當前狀態,並在確認已調用/填充空間的情況下將更改推送到其板上。 ---這將為該“房間”中的其他設備啟用游戲虛擬共享空間的名稱。 接收要顯示的更改數據的PUSH通知。

接下來,您需要確定服務器將保持每個用戶的完整狀態還是僅保持當前調用的值以進行比較。

如果您決定不想編寫API並為PUSH設置服務器,則可以在該區域的每個人之間進行即席wi-fi或基於BLE的通信。 但是,這將需要對如何傳遞字節,處理網絡問題,延遲以及如何在設備之間進行通信有更多的了解。

如果您選擇按照您提到的方式進行臨時wifi,則必須維護大量連接,例如網狀網絡。 更好的選擇是讓所有設備都加入同一個wifi網絡,以便它們可以相互訪問,但不必跟蹤網狀網絡。

但是,即使您在同一個wifi上,如果沒有服務器保留當前播放器的路由和IP,也很難知道將信息發送給誰。 因此,您可能必須創建一個主機,以便它可以偵聽已注冊的玩家。 主機設備將需要保留到所有其他設備的路由,以便在發生更改時可以將信息發送到每個IP地址。

我仍然強烈建議您使用API​​和PUSH的客戶端/服務器路由,它將更加可靠。

現在,關於如何傳遞數據,您當然可以通過代碼截屏並發送圖像,但這很浪費。 我建議您使用一個矩陣來跟蹤覆蓋的值,並簡單地將card_id,player_id和Covered塊的JSON片段發送至服務器,然后再將更改推回“虛擬房間”中的所有玩家。 這使他們可以看到競爭對手的表現。

因此,我將需要詢問有關您的目標進一步幫助的更多詳細信息,但這是我的建議,因為可以使用即席wifi或藍牙,但在網目尺寸的情況下,您會頭疼不已。 如果您確實是反服務器和API,那么主機場景設備全部位於同一wifi上將是我的第二個方向,這是我能避免看到的唯一原因,如果您想使用沒有互聯網的wifi或您不想在流量很小的情況下每月支付$ 30的流量。

讓我知道這是否有幫助,或者您是否想提供其他說明。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM