我想學習如何從頭開始製作其中一個系統,並且我在Google上發現了很多垃圾鏈接。我真的只想爲最基本的PHP和MySQL聊天提供一個簡單的教程,以便在開始處理jQuery/AJAX之前,我可以理解這個概念。如何構建PHP/MySQL實時聊天?
回答
一個非常簡單的起點
有一個數據庫表的消息
id | user | timestamp | message
而且具有發送一個AJAX請求讀取任何新的消息的PHP頁面。
這將涉及檢查數據庫以查看自收到請求以來是否有任何消息。如果沒有消息,然後循環,等待並再次嘗試100毫秒(或任何你認爲可接受的滯後)。
當Ajax請求返回消息(JSON響應最好)時,使用JQuery將用戶,時間和消息輸出到頁面。
你的聊天活動部分是棘手的部分,如果你剛剛開始,我會跳過這一點。 首先創建一個簡單的留言板,然後添加更多功能。
有許多關於如何構建留言板的教程,甚至還有一些可以從中學習的免費腳本。
在您的留言簿正常工作後,您可以使用AJAX輪詢來添加諸如自動加載新消息的功能,以使其顯示爲實時。你基本上做的是定期向服務器發出AJAX調用,以獲取所有消息並將其顯示在頁面上。
但是運算符部分呢?必須有一個操作員(管理員)處理傳入的客戶消息並對其作出響應,對嗎?所以,如果我理解正確,管理員端的腳本將不斷檢查數據庫中的最新條目(每隔10秒定期使用ajax),並向管理員顯示消息的詳細信息和相應的客戶。因此,管理員可以選擇客戶並向他發送回覆。然後在客戶端,我們必須顯示針對該客戶的消息(再次定期)。 – 2011-08-16 12:24:12
PHP/MySQL的聊天101:
1)用戶打開browser
2)用戶輸入address在布勞爾
3)瀏覽器發送HTTP請求
4)server臨危HTTP請求
5)服務器告訴PHP解釋器運行PHP script
6)PHP腳本connects至MySQL database
7)PHP腳本retrieves list of messages
8)PHP生成與消息製成的HTML代碼的HTTP響應和form
9)服務器發送給瀏覽器
10的HTTP響應)瀏覽器從HTTP響應繪製HTML
11)用戶類型新的消息並提交表單
12)瀏覽器發送HTTP POST請求
13)...
雖然這可能在理論上回答這個問題,[這將是更可取的](http://meta.stackexchange.com/q/8259)在這裏包括答案的基本部分,並提供供參考的鏈接。 – 2013-12-17 10:36:12
如果您必須使用php和mySQL進行聊天,至少有一個未讀消息的單獨表。如果您進行調查,您很可能需要每隔100ms左右檢查數據庫中是否有新消息。如果您的總郵件表爲1000行,則每隔100毫秒檢查一次會終止您的服務器(特別是在連接了很多用戶的情況下)。我會爲我的mySQL數據庫構造一個只有未讀消息的表格,並將它們移動到一個更大的表格中,以便讀取舊消息。這樣你就不會一直在檢查一張大桌子。
更好的辦法是使用緩存數據庫來讀取像redis(facebook使用的memcacheD)這樣的未讀消息。
甚至更好的是隻不使用PHP一起,並使用事件驅動的語言,像node.js的回調
- 1. 實時聊天
- 2. MongoDB架構設計 - 實時聊天
- 3. 聊天架構:實時狀態通知
- 4. Php - 實時聊天
- 5. 如何創建JavaScript聊天
- 6. Java實時聊天開源
- 7. 如何在JSP中創建實時聊天
- 8. 實時代理聊天 - 無法與自定義聊天窗口建立聯繫
- 9. 如何創建Google聊天按鈕進行聊天?
- 10. SharePoint的實時聊天實施
- 11. 鈦聊天實現
- 12. 聊天實現Android
- 13. 如何在iPhone中使用XMPP框架實現實時聊天?
- 14. 如何在ios中實現實時聊天
- 15. 如何實現聊天客戶端
- 16. 如何在deepstream.io上實現聊天?
- 17. 如何在Firebase聊天中實現hellban?
- 18. 如何實現Facebook聊天窗口?
- 19. 如何實現聊天情緒?
- 20. 你會如何去django實現聊天?
- 21. Facebook聊天頭如何實現?
- 22. 如何實現HTML5音頻聊天
- 23. 通常如何實現聊天?
- 24. 如何創建Gmail聊天?如何連接到AIM並允許AIM聊天?
- 25. 如何構建一個Gmail聊天機器人?
- 26. 如何使用Watson對話構建混合聊天機器人?
- 27. 如何開始構建語音聊天應用程序iPhone?
- 28. EventMachine:如何使用Rails應用程序構建聊天系統
- 29. 如何構建Web /客戶端支持聊天系統
- 30. 在聊天應用程序中Firebase實時數據庫結構
我認爲這個問題是有點含糊 - 也許,如果你集中多一點具體的你關心它的方面會有所幫助。你不會說你在PHP,數據庫設計等方面的專業水平是什麼,那麼你在尋找什麼級別的教程? – Polsonby 2011-01-05 09:34:57
frames +'meta-refresh'是AJAX時代之前的方式 – 2011-01-05 09:35:39
這是一個模糊的問題。如果你在項目的某個特定部分尋求幫助,而不是僅僅要求整體教學,那麼你可能會有更多的運氣。 – 2011-01-05 09:43:10