2016-07-31 106 views
0

我做了一個Java網絡聊天,它使用套接字完美工作。 有一個主服務器,來自世界各地的多個客戶端可以使用其IP地址和端口號連接到該服務器。之後,你可以發送一個信息,每個連接的人都能看到它。是否可以強制PHP中的Web應用程序與Java中的桌面應用程序一起使用?

的問題是:

我想用這個聊天不僅可以作爲桌面程序,還可以作爲一個移動應用程序或網站。

這是可能使一個網站,讓我們說,PHP或Python,使它可以連接到我的Java服務器使用相同的參數,做主桌面應用程序,但從瀏覽器或案件一個android/ios應用程序,使用移動設備,或者我需要製作一個主服務器,以便它可以處理來自任何特定平臺的請求,例如:

if (webapp) { //handling a web request here } elseif (android) { //handing androind request here } elseif (ios) { //ios goes here } else { //main desktop request }

+0

你完成了服務器端,但你需要爲你希望啓用的每個環境創建一個客戶端應用程序,在客戶端代碼中不需要任何特殊的東西,它是一個標準協議,TCP或UDP,客戶端語言不很重要,而且沒有必要檢測服務器上的客戶端類型。 – Yazan

+0

更具技術性和特殊性:無論這個連接來自哪裏(android,ios,javascript,php或者甚至是telnet),所有傳入的連接都將被接收爲使用你的服務器套接字,在'socket.accept()'行。 ..) – Yazan

+0

@Yazan,聽起來很簡單。我會嘗試。謝謝。 – Caleb

回答

1

你幾乎是那裏的老兄,你願意有可以從android,IOS,桌面應用程序和網絡瀏覽器操作的聊天應用程序,所以你說你已經完成了基於桌面的JAVA套接字服務器程序目前,正如你所說,你正在使用RAW套接字編程,這是好的移動&桌面應用程序,但Web應用程序呢?在這種情況下是不可能的。

所以爲了做到這一點對所有可能可用的小工具的今天,包括智能手機,智能手錶,使用Web瀏覽器和桌面應用程序,以及你必須使用WebSockets的,

的WebSocket是協議通過單個TCP連接提供全雙工通信信道 。 WebSocket協議在2011年由IETF標準化爲 ,作爲RFC 6455,Web IDL中的WebSocket API由W3C標準化爲 。

您可以瞭解一點的WebSockets從這裏:

websocket.org

socket.io

所以這裏來的WebSockets的概念,利用它可以實現 你幾乎什麼應該做的。所以,你可以做幾件事情出來 下面來實現這一目標:

  1. 您可以修改現有的Java程序來處理WebSocket連接,而不是處理RAW插槽,你正在做的事情。

  2. 另一種可能性,你可以寫你的服務器WS(網頁套接字)程序Python或Node.js的,這就好比herokuopenshift甚至AWS遠易於開發,和主機上的任何免費入場券雲服務。

所以,在這種情況下,一旦你創建/修改現有服務器 程序WS,所有你需要做的是在任一或所有下面的創建客戶端 程序:

  1. IOS應用
  2. 的Android APP
  3. 桌面應用程序(在.NET或JAVA或Python)P中
  4. 網站HP或Python(使用JavaScript WS客戶端庫)

,你可以在任何或所有的上述平臺上的客戶端程序,在WS客戶端庫幾乎可用於所有上面提到的平臺的的。

因此,一旦您使用Sever端,您可以在openshift上託管您的服務器端程序,該服務器端程序可以免費使用PaSS雲服務,遠遠優於今天剩餘的PaSS服務。

+0

謝謝,關於WS的好點。 – Caleb

相關問題