2010-06-03 66 views
1

我正在尋找一種方法將實時功能放入我的網站。使用PHP或ASP.NET的實時網站

這個想法是2人之間的異步通信 - 就像聊天會話。如果我使用聊天示例 - 我希望第二個人知道第一個人向他發送了一條消息,而不刷新或在網頁上執行某些活動。

輪詢在這裏不是一個好主意 - 那麼還有其他解決方案嗎?後端可能是ASP.NET或PHP(ASP.NET首選)。

幫助將不勝感激,

感謝,

羅馬

+1

http://en.wikipedia.org/wiki/Comet_(programming)? – jball 2010-06-03 20:41:18

+0

謝謝 - 我認爲這可以解決問題! – Roman 2010-06-03 20:57:56

回答

0

嗯,PHP是不是真的適合這項任務的會談。但是,再次,ASP.net也是如此。其原因是服務器(IIS/Apache)如何處理請求。應用程序(和連接)需要保持活躍狀態​​,直到有數據要發送。這對於每個線程/進程應用程序的單個請求來說非常昂貴。

一個選項是爲長輪詢COMET請求使用獨立服務器。 Python有一個已經寫好的文件:Tornado。您只需運行該程序(並編寫代碼將數據發送到客戶端)作爲Web服務器(您可以在單獨的端口或代理上運行它,以便常規請求由主Web服務器處理)。

+0

哦,這真是一個好點!也許你知道一些使用.NET的解決方案?我並沒有真正使用python,並且不得不花費大量的時間來學習它。 – Roman 2010-06-03 21:08:12

+0

好吧,快速谷歌搜索變成http://stackoverflow.com/questions/65673/comet-implementation-for-asp-net和http://www.codeproject.com/KB/aspnet/CometAsync.aspx – ircmaxell 2010-06-04 00:14:38

+0

有是開源示例ASP.NET項目:http://pokein.codeplex.com – Zuuum 2010-09-20 15:51:24

0

您可以使用AJAX ...所以沒有什麼區別無論你選擇ASP.NET或PHP。

+0

你能不能模糊一點?最近我看到人們引用了JSONP請求中的任何內容,並將其拖放爲AJAX。 – 2010-06-03 20:47:45

+0

使用AJAX你仍然需要輪詢服務器,這是他所說的他想避免的:( – Justin 2010-06-03 20:49:51

+0

AJAX只是異步JavaScript - 它不能解決問題。仍然使用輪詢......謝謝:) – Roman 2010-06-03 20:55:52

0

您可能想要查看COMET,而不是AJAX,查看聊天系統等內容。這是FriendFeed和其他人用來避免大量輪詢請求的原因。

我發現this博客和this文章關於它與ASP.NET

+0

謝謝 - 看起來像這可以是一種方式... :)雖然大多數COMET技術仍然使用輪詢。 – Roman 2010-06-03 20:57:33