2011-09-21 136 views
0

什麼技術用於聊天?我想創建一個開放的連接。Php - 實時聊天

當我將一條新消息放入數據庫時​​。我想在不使用定時器的情況下自動創建循環,並向瀏覽器發送新消息。

如何做這個聊天?

我有一個虛擬主機--Linux。 - Mysql數據庫。

我試圖檢索新消息並使用計時器。每3秒我使用Ajax檢索數據。 這個解決方案對我來說似乎效率低下,所以尋找其他人。

謝謝。

+1

PHP + MySQL是構建聊天的糟糕平臺。有許多現成的解決方案可以安裝,比如XMPP/Jabber服務器。 –

回答

3

PHP是一種服務器端腳本語言,這意味着所有的PHP在頁面加載前都會被處理。爲了生成類似聊天的環境,您需要使用Javascript來建立到後端(PHP部分)的開放連接。有很多方法可以做到這一點,包括輪詢(定時器)和套接字(更復雜)。

我知道如何使用Javascript來處理類似聊天的服務的最佳方式是查看Node.js及其功能,這裏特別演示爲聊天室:http://chat.nodejs.org/

一般而言,NodeJS和持久連接的問題在於大多數便宜的託管服務提供商不允許您持續打開連接。你需要小心購買一個成本更高的專用服務器。我相信,在他們的環境中,特別允許NodeJS類型的服務的主機,但我不知道有什麼關係。

+0

我無法連接到chat.nodejs.org –

1

您可能需要實施COMET技術。它允許進行長時間的聯合請求。當一個請求完成時,您可以啓動另一個請求。 COMET連接始終打開。

在PHP中,您可以創建無限循環,例如while(true),並在需要時斷開連接。