PHP聊天室以前做時(shí)都是通過ajax與PHP來實(shí)現(xiàn)的,今天我們就一起來看一個(gè)PHP聊天室WebSocket技術(shù)實(shí)戰(zhàn)例子.
最近在研究聊天室技術(shù),因?yàn)槲沂亲鰌hp的,肯定想要從php入手,偶的一個(gè)聊天室,下載地址:
http://pan.baidu.com/s/1dDWsbip
密碼:i2qz
正在修行當(dāng)中,準(zhǔn)備以此為基礎(chǔ)做一款php的聊天室系統(tǒng)出來,php的東西比較容易看懂,但是我遇到的一個(gè)問題是前臺(tái)文件如何發(fā)送信息到后臺(tái)服務(wù)器呢,后來研究發(fā)現(xiàn)是用的js 的WebSocket技術(shù),如下是常用js WebSocket 常用操作:
- var socket = new WebSocket('ws://localhost:8080');
- // 打開Socket
- socket.onopen = function(event) {
- }
- // 發(fā)送一個(gè)初始化消息
- socket.send('I am the client and I/'m listening!');
- // 監(jiān)聽消息
- socket.onmessage = function(event) {
- console.log('Client received a message',event);
- }; //Vevb.com
- // 監(jiān)聽Socket的關(guān)閉
- socket.onclose = function(event) {
- console.log('Client notified socket has closed',event);
- };
- // 關(guān)閉Socket....
- socket.close()
- socket.onerror = function(evt){console.log(“WebSocketError!”);};
這里給大家下載的版本是window版本的php聊天室,需要大家配置如何cmd運(yùn)行php的環(huán)境,很簡單,網(wǎng)上有很多教程,搜搜即可,我只說我遇到的一點(diǎn)疑惑,就是按照教程配置完環(huán)境變量path之后,按道理來說,應(yīng)該是可以cmd運(yùn)行php了,但是就是不行,過了一天,發(fā)現(xiàn)居然能用了,后來才想明白是,配置完后,需要重啟電腦才能生效的緣故。
以前也用過 node.js 開發(fā)過一些小功能,覺得這里的php技術(shù)和node.js 功能都是類似的,都是不需要運(yùn)行環(huán)境,自身就是運(yùn)行環(huán)境的一種方式,聊天室技術(shù),其實(shí)我覺得最大的一個(gè)突破點(diǎn)是,服務(wù)器可以主動(dòng)給用戶發(fā)送信息,以控制用戶端的瀏覽器,我覺得這一點(diǎn)的意義很大。這樣不用再用ajax不停的訪問服務(wù)器來獲得最新的技術(shù)了,極大的減小了服務(wù)器的壓力,而且提高了用戶體驗(yàn),但是發(fā)現(xiàn)用此技術(shù)還是沒有很好的普遍使用起來,所以以后會(huì)陸續(xù)發(fā)一些此方面的相關(guān)視頻教程出來,童鞋們可以互相學(xué)習(xí)交流。
下載到源碼之后直接雙擊目錄下面的 start_for_win.bat 文件 即可啟動(dòng) 聊天室服務(wù),然后訪問:http://127.0.0.1:55151/ 即可進(jìn)入聊天室
當(dāng)然也可以用如下命令控制服務(wù):
啟動(dòng)
以debug方式啟動(dòng)
php /var/www/workerman/start.php start
以daemon方式啟動(dòng)
php /var/www/workerman/start.php start -d
停止
php /var/www/workerman/start.php stop
重啟
php /var/www/workerman/start.php restart
平滑重啟
php /var/www/workerman/start.php reload
查看狀態(tài)
php /var/www/workerman/start.php status
我只說重要的一點(diǎn),debug方式啟動(dòng),會(huì)在你關(guān)閉cmd窗口的時(shí)候 聊天室服務(wù)就關(guān)閉了,而以以daemon方式啟動(dòng),就算cmd窗口關(guān)閉了,聊天室服務(wù)還是運(yùn)行的
新聞熱點(diǎn)
疑難解答