2015-04-16 58 views
0

多個客戶端程序負責我想建立一個應用程序,它會在位置改變的數據(長,緯度,時間戳和SSID),每隔60秒發送到服務器後臺。數據將被存儲在數據庫中,並且在請求的情況下服務器將把響應發回給用戶。我希望通過使用HttpURLConnection api來實現這一點,我應該考慮使用我的服務器處理多個客戶端的多線程?安卓:這部分是在客戶端服務器連接

我很感激任何幫助。

+0

'的數據將被存儲在服務器的數據庫中'?你想學什麼樣的服務器多線程? '編程步驟'爲您的服務器代碼? – greenapps

+0

其公共汽車的衆包跟蹤系統。數據將被存儲在服務器的數據庫中,因爲其他用戶將請求服務器獲取關於所需總線位置的特定信息。我將首先嚐試使用我的本地主機,然後進行測試,我將需要數據庫服務器。 –

+0

您需要幫助但仍未告知您使用哪種腳本語言的服務器。 – greenapps

回答

0

讓我嘗試解釋一下到底什麼是這裏的服務器端的行爲,哪些應該是由客戶端和服務器端的期望。

客戶端 - 你必須在特定的持續時間後發送/獲取請求,你可以使用相同的報警管理器(在android中)。這將全部在客戶端。

服務器端--- 使用ExecutorService用於Servlet中的線程池。 在servlet的構造函數中,用poolize初始化它,在這裏你可以根據產品的需要選擇緩存池或者固定池。

語法將根據烏爾請求類型是這樣的this--

private ExecutorService exectorService; 

在Constructor--

this.exectorService = Executors.newCachedThreadPool();// Executors. 

現在..either的doGet()或doPost將收到一個請求..

所以提取的請求在上述方法的內容和上成功提取發送響應的成功。

創建一個可運行的,將負責所有的查詢和程序執行。 並將該可運行添加到線程池。這樣----

processhandler = new ProcessHandler(getServletContext(),targetString); 
exectorService.submit(processhandler); 

,這將是所有線程池..

現在來對數據庫插入和更新用的connectionPooling。 我寧願建議通過HikariCP進行連接池。 它非常有效和快速。

希望這有助於! 歡呼