聊天系統 - 關於php做聊天室

來源:互聯網
上載者:User
我們現在在做一款看直播的產品,有聊天室功能,類似新浪這個:http://video.sina.com.cn/l/pl/globallive/1327915.html ,他那個用的是jetty,我想知道php平台有沒有類似適合做聊天室的東西,謝謝!

我們現在用的傳統的nginx+php+mysql做的,因為一個php-fpm進程要佔幾十M記憶體,一台伺服器只能開幾百個php-fpm進程,勉強承受幾千人線上。

回複內容:

我們現在在做一款看直播的產品,有聊天室功能,類似新浪這個:http://video.sina.com.cn/l/pl/globallive/1327915.html ,他那個用的是jetty,我想知道php平台有沒有類似適合做聊天室的東西,謝謝!

我們現在用的傳統的nginx+php+mysql做的,因為一個php-fpm進程要佔幾十M記憶體,一台伺服器只能開幾百個php-fpm進程,勉強承受幾千人線上。

http://cevin.me/archives/realtime-msg.html

聊天這東西首先要考慮的瀏覽器端和伺服器的溝通。比如是 Ajax polling、comet 還是 WebSocket(這其中還涉及到瀏覽器安全色性問題)。三個方法在伺服器的 implementation 是很不同的。

不想自己折騰的話,可以看看 Ratchet。

就用最簡單的方式,前端ajax輪詢請求,後端做好緩衝應該沒問題。
聊天內容就不要入庫了,直接用redis的list結構,並且限制list的長度如10000條,畢竟線上聊天沒人會看那麼多的聊天記錄。這主要解決了讀的問題。
如果一定要儲存所有聊天記錄,就加個隊列,平滑入庫。寫的問題也能解決。

你必須主動啟動一個程式,常駐記憶體,開若干個線程和若干個連接埠監聽。

php做不了的,因為php的請求都被動,不能主動運行成daemon的,也沒多線程。做這麼高負載不錯了。

  • 聯繫我們

    該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

    如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

    A Free Trial That Lets You Build Big!

    Start building with 50+ products and up to 12 months usage for Elastic Compute Service

    • Sales Support

      1 on 1 presale consultation

    • After-Sales Support

      24/7 Technical Support 6 Free Tickets per Quarter Faster Response

    • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.