我想管理2個應用程序之間的連接,它們將在不同的電話上運行。 目的並不重要,假設它會是某種聊天。2個應用程序之間的連接
如何在應用程序之間創建此連接?我知道如何在使用套接字和serverSocket類的pc java程序上做到這一點,但我猜這是不同的,因爲當他在網絡之間移動時,手機可能會改變他的ip。
那麼你會怎麼做呢?你將如何建立兩個應用程序/電話之間的連接
我想管理2個應用程序之間的連接,它們將在不同的電話上運行。 目的並不重要,假設它會是某種聊天。2個應用程序之間的連接
如何在應用程序之間創建此連接?我知道如何在使用套接字和serverSocket類的pc java程序上做到這一點,但我猜這是不同的,因爲當他在網絡之間移動時,手機可能會改變他的ip。
那麼你會怎麼做呢?你將如何建立兩個應用程序/電話之間的連接
鑑於您在評論中描述的情況,使用推送通知即Google Cloud Messaging (GCM)可能就足夠了。
因此,當program B
想要從program A
更新時,它會要求服務器將通知(通過GCM)推送到program A
。請注意,program A
將而不是每x次連接到服務器以檢查更新。
另一個開箱即用解決方案是使用短信,如果通信不是如此頻繁和消息很短。這裏我的意思是短信將直接由您的應用程序處理(因爲它有一定的關注詞),並不會去收件箱即沒有短信通知在手機上
由於兩個電話將,如你所說,有變化的IP地址,你可能需要使用中介。
這裏的一般設計模式是讓服務器擁有固定的IP或DNS地址,以便在兩個移動設備之間傳遞消息。最簡單的實現將是一個網絡服務器,每個電話將通過HTTP(S)連接以傳輸數據或輪詢更新。
有許多後端即服務平臺提供了預建的這種類型的功能,並且可能足以用於諸如聊天系統之類的東西。檢出Cloudmine和Parse。
如果您需要低延遲或接近實時的連接,還可以考慮實施您自己的服務器,該服務器使用Android C2DM(雲到設備消息傳遞)服務。
聽起來不錯,但有一件事我想強調,聊天的例子是一個不好的例子,因爲在我的情況下,手機A將只發送給手機B的信息,只有當手機B告訴他!所以假設我實施它購買你的建議,然後電話B會告訴服務器電話A需要發送一些東西,而服務器不能連接電話A,所以電話A必須每x次連接一次服務器以檢查更新效率低下。 –
請參閱Android的示例藍牙聊天應用程序,它會給你一個想法如何實現。
A <->服務器,服務器<-> B,我不認爲你需要保持連接,一個數據傳輸,一個連接就足夠了。此外,Android有很多情況可能會破壞您的申請流程。 – StarPinkER