天天看點

實作php對接QQ聊天,javascript - 想做一個類似于QQ的網頁版聊天功能,如何實作??...

制作網頁版聊天工具的時候,大家通常是用什麼方式來進行實時消息傳遞的??

我所知道的 :

ajax輪詢(都說浪費資源,不好...)

EventSource(支援不好,IE壓根不支援..)

WebSoket(不是很了解...)

而且,百度搜尋後了解到在浏覽器不支援 WebSocket 的情況下,居然還有第三方庫能夠實作 WebSocket ,是否所謂的 WebSocket 也是如同 EventSource 一樣,核心原理都是用 ajax 的輪詢方式實作即時通信??

目前普遍在用的網頁實時通信技術是什麼??小白求教,求大神空降...

回複内容:

制作網頁版聊天工具的時候,大家通常是用什麼方式來進行實時消息傳遞的??

我所知道的 :

ajax輪詢(都說浪費資源,不好...)

EventSource(支援不好,IE壓根不支援..)

WebSoket(不是很了解...)

而且,百度搜尋後了解到在浏覽器不支援 WebSocket 的情況下,居然還有第三方庫能夠實作 WebSocket ,是否所謂的 WebSocket 也是如同 EventSource 一樣,核心原理都是用 ajax 的輪詢方式實作即時通信??

目前普遍在用的網頁實時通信技術是什麼??小白求教,求大神空降...

Workerman是一款純PHP開發的開源高性能的PHP socket 伺服器架構。被廣泛的用于手機app、手遊服務端、網絡遊戲伺服器、聊天室伺服器、硬體通訊伺服器、智能家居、車聯網、物聯網等領域的開發。 支援TCP長連接配接,支援Websocket、HTTP等協定,支援自定義協定。基于workerman開發者可以更專注于業務邏輯開發,不必再為PHP Socket底層開發而煩惱。

git倉庫:https://github.com/walkor/Wor...

中文首頁:http://www.workerman.net/

中文文檔:http://doc3.workerman.net/

題主可以試試這個。

說兩個PHP的方案,其中之一的WorkerMan已經有人說了,另一個就是峰哥基于Swoole開發的PHPWebIM.

PECL擴充Swoole支援使用PHP來編寫高性能的socket應用:

apt-get install php-pear php5-dev

yum install php-pear php-devel

pecl remote-info swoole

pecl install swoole

PHPWebIM是Swoole官方基于PHP Swoole擴充和Swoole Framework開發的WebSocket網頁即時聊天工具.

PHPWebIM支援WebSocket+Comet兩種協定,可用于所有種類的浏覽器包括IE,請看Demo.

如果隻是實作比較實時的消息通知,也可以用AJAX輪詢:

1)單頁面(隻在一個頁面做輪詢)

2)setInterval間隔被動輪詢(keep-alive持久連接配接,比如30秒)

3)window.onfocus視窗獲得焦點主動觸發(event-driven)

輪詢間隔時間過短,使用者打開頁面過多,可能會導緻伺服器壓力過大.

對于實時性要求不高的業務,可以把間隔時間加大,比如2分鐘輪詢1次.

window.onblur = function() {document.title = '失去焦點';};

window.onfocus = function() {document.title = '獲得焦點';};

我以前用nodejs socket.io寫過一個,直接搜,就有好多别人寫的例子:http://www.open-open.com/lib/...

樓上正解。

案例位址:http://www.workerman.net/

websocket肯定不是通過ajax實作的.

用websocket肯定是最完美的, 可以通過workerman, react, swoole這類架構配合實作.

用長輪詢也可以, 不過比較耗資源. 但是實作成本比websocket低.

還有就是實時輪詢, 實作成本最低. 不過效率肯定是最低的, 像SF的消息提醒就是用的定時輪詢

實作php對接QQ聊天,javascript - 想做一個類似于QQ的網頁版聊天功能,如何實作??...

本文原創釋出php中文網,轉載請注明出處,感謝您的尊重!