我試圖將數據從服務器直接推送到客戶端的php網頁。我已經多次搜索這個問題,我不想使用ajax push引擎或其他東西,如cometD(如果你知道我在說什麼)。我想知道是否有任何方法將程序放在我的服務器上,以便將數據發送到所有連接的客戶端。我寧願這是用c或C++或c#來完成的,我可以自己編寫它,我只是想如果它是可能的和如何。C http服務器編程
3
A
回答
1
也許你沒有得到HTTP協議的工作方式。你應該首先記錄下你自己。我會盡力解釋如何使用它爲您的情況:
輪詢:每X秒,客戶端將請求一個網頁與你想要的內容。這是使用HTTP的標準方式:客戶端發送GET,服務器發送響應。
推:每個客戶端都會請求一個網頁,但服務器會實際等待您發送消息。您可以使用此HTTP通道「推」的數據:客戶端發送一個GET,服務器等到他有一個響應發送
正如你看到的,我不是在談論任何語言實現,只是關於HTTP協議如何偏離你想做的事情。 Push方法的壞處在於,即使客戶端處於空閒狀態,您也將爲X客戶端打開X套接字。使用Pull方法時不會發生這種情況,發送響應時套接字會關閉。
現在,如果你想這樣做,你需要從客戶端開始連接。這就是「Ajax」的部分可能是有用的,讓我們在看的jQuery:
$.get('/wait_for_message', function(data) {
alert('My server send:' + data);
})
您的服務器將有一個GET /wait_for_message HTTP/1.1
請求。您可以將此套接字保存在「等待某個東西的客戶端」列表中,而不是發回數據。然後,當需要時,您可以遍歷這個列表,將數據寫入所有套接字,並且tada:所有客戶端都將接收數據。
現在這種機制並不容易做到,這就是爲什麼您可以像其他人一樣使用其他項目的原因。
0
您可以使用任何語言編寫/修改一個非常簡單的Web服務器,以格式化和提供數據庫中的數據,甚至忽略實際請求的內容。所有你需要做的就是寫一個頭和數據到套接字。您可以通過根據某個列表主動發起連接來做同樣的事情。
相關問題
- 1. C#Http服務器與PHP
- 2. C++ HTTP Web服務器庫
- 3. 登錄HTTP服務器C++
- 4. 編寫客戶在C /服務器程序Unix服務器
- 5. Websocket服務器在C++編程錯誤
- 6. Azure C#服務器套接字編程
- 7. 用C++編程的服務器
- 8. Gst RTSP服務器編程
- 9. HTTP服務器
- 10. C編譯器web服務
- 11. 將Python HTTP服務器作爲RPC服務器嵌入到C程序中?
- 12. Indy HTTP服務器URL編碼請求
- 13. 編寫自己的HTTP服務器
- 14. C http服務器發送請求到我的服務器?
- 15. C++ http tcp服務器到服務器連接
- 16. C#中的Http服務器支持分塊傳輸編碼
- 17. C- HTTP Web服務器:如何緩存
- 18. 簡單的C#HTTP/TCP服務器
- 19. C HTTP服務器/連接重置
- 20. C#Http服務器請求路由
- 21. iPhone HTTP服務器
- 22. 非http服務器
- 23. 從HTTP服務器
- 24. Perl HTTP服務器
- 25. node.js http服務器作爲Windows服務
- 26. Linux服務器編程
- 27. Java UDP服務器編程
- 28. 服務器端編程
- 29. SIP服務器編程
- 30. 文件上傳到HTTP服務器在iPhone編程
如果你想用HTTP來做到這一點,那麼只有兩個選項是輪詢或彗星。儘管你可以用任何語言來實現它們中的任何一個。 – Flexo 2012-02-10 18:40:53