精品欧美一区二区三区在线观看 _久久久久国色av免费观看性色_国产精品久久在线观看_亚洲第一综合网站_91精品又粗又猛又爽_小泽玛利亚一区二区免费_91亚洲精品国偷拍自产在线观看 _久久精品视频在线播放_美女精品久久久_欧美日韩国产成人在线

五分鐘教你寫(xiě)超簡(jiǎn)單的swoole聊天室

移動(dòng)開(kāi)發(fā)
那么 我將所有的客戶(hù)端的鏈接存起來(lái)存成數(shù)組,每當(dāng)一個(gè)客戶(hù)端發(fā)送消息時(shí),我就遍歷這個(gè)客戶(hù)端數(shù)組,將消息群發(fā)一遍,不久實(shí)現(xiàn)了聊天室了嗎?

原本我是準(zhǔn)備接著寫(xiě)我那個(gè)多進(jìn)程教程的,今天心血來(lái)潮想看看swoole的websocket,

swoole-1.7.9 增加了內(nèi)置的websocket服務(wù)器支持,通過(guò)幾行PHP代碼就可以寫(xiě)出一個(gè)異步非阻塞多進(jìn)程的WebSocket服務(wù)器。

swoole_websocket_server 繼承自 swoole_http_server,如果設(shè)置了onRequest回調(diào),websocket服務(wù)器也可以同時(shí)作為http服務(wù)器。

  1. $server = new swoole_websocket_server("0.0.0.0"9501); 
  2.  
  3. $server->on('open', function (swoole_websocket_server $server, $request) { 
  4. echo "server: handshake success with fd{$request->fd}\n"
  5. }); 
  6.  
  7. $server->on('message', function (swoole_websocket_server $server, $frame) { 
  8. echo "receive from {$frame->fd}:{$frame->data},opcode:{$frame->opcode},fin:{$frame->finish}\n"
  9. $server->push($frame->fd, "this is server"); 
  10. }); 
  11.  
  12. $server->on('close', function ($ser, $fd) { 
  13. echo "client {$fd} closed\n"
  14. }); 
  15.  
  16. $server->start(); 

我看了看官網(wǎng)的demo,覺(jué)得看起來(lái)很簡(jiǎn)單嘛,

  1. <?php 
  2. //官網(wǎng)demo 
  3. $server = new swoole_websocket_server("0.0.0.0", 9501); 
  4.  
  5. $server->on('open', function (swoole_websocket_server $server, $request) { 
  6. echo "server: handshake success with fd{$request->fd}\n";//$request->fd 是客戶(hù)端id 
  7. }); 
  8.  
  9. $server->on('message', function (swoole_websocket_server $server, $frame) { 
  10. echo "receive from {$frame->fd}:{$frame->data},opcode:{$frame->opcode},fin:{$frame->finish}\n"; 
  11. $server->push($frame->fd, "this is server");//$frame->fd 是客戶(hù)端id,$frame->data是客戶(hù)端發(fā)送的數(shù)據(jù) 
  12. //服務(wù)端向客戶(hù)端發(fā)送數(shù)據(jù)是用 $server->push( '客戶(hù)端id' , '內(nèi)容') 
  13. }); 
  14.  
  15. $server->on('close', function ($ser, $fd) { 
  16. echo "client {$fd} closed\n"; 
  17. }); 
  18.  
  19. $server->start(); 

我就是喜歡這種簡(jiǎn)單易懂的demo ,每行代碼意思一看就明白

服務(wù)端有了,我找點(diǎn)客戶(hù)端的js代碼

火狐的MDN

  1. <!DOCTYPE html> 
  2. <html> 
  3. <head> 
  4. <title></title> 
  5. <meta charset="UTF-8"
  6. <script type="text/javascript"
  7. var exampleSocket = new WebSocket("ws://0.0.0.0:9501"); 
  8. exampleSocket.onopen = function (event) { 
  9. exampleSocket.send("親愛(ài)的服務(wù)器!我連上你啦!"); 
  10. }; 
  11. exampleSocket.onmessage = function (event) { 
  12. console.log(event.data); 
  13. </script> 
  14. </head> 
  15. <body> 
  16. <input type="text" id="content"
  17. <button onclick="exampleSocket.send( document.getElementById('content').value )">發(fā)送</button> 
  18. </body> 
  19. </html> 

***命令行運(yùn)行php文件,之后瀏覽器打開(kāi)html文件,

F12打開(kāi)調(diào)試界面看console,ok , 沒(méi)有問(wèn)題

這個(gè)時(shí)候我突然想到一個(gè)事情,因?yàn)槲易龆噙M(jìn)程的那個(gè)教程里,在主進(jìn)程中會(huì)將所有的子進(jìn)程的句柄存起來(lái),以后進(jìn)行進(jìn)程間通訊用。

那么 我將所有的客戶(hù)端的鏈接存起來(lái)存成數(shù)組,每當(dāng)一個(gè)客戶(hù)端發(fā)送消息時(shí),我就遍歷這個(gè)客戶(hù)端數(shù)組,將消息群發(fā)一遍,不久實(shí)現(xiàn)了聊天室了嗎?

然后就,服務(wù)端代碼成了這個(gè)樣子

  1. <?php 
  2. $map = array();//客戶(hù)端集合 
  3. $server = new swoole_websocket_server("0.0.0.0"9501); 
  4.  
  5. $server->on('open', function (swoole_websocket_server $server, $request) { 
  6. global $map;//客戶(hù)端集合 
  7. $map[$request->fd] = $request->fd;//***連上時(shí)存起來(lái) 
  8. }); 
  9.  
  10. $server->on('message', function (swoole_websocket_server $server, $frame) { 
  11. global $map;//客戶(hù)端集合 
  12. $data = $frame->data; 
  13. foreach($map as $fd){ 
  14. $server->push($fd , $data);//循環(huán)廣播 
  15. }); 
  16.  
  17. $server->on('close', function ($ser, $fd) { 
  18. echo "client {$fd} closed\n"
  19. }); 
  20.  
  21. $server->start(); 

哈哈 , 我覺(jué)得這樣就大功告成了,結(jié)果發(fā)現(xiàn)自己是 圖樣圖森破

大家可以自己試試,運(yùn)行php后 , 瀏覽器打開(kāi)兩個(gè)頁(yè)面,看看console.log的內(nèi)容是什么

運(yùn)行良好,可是并沒(méi)有實(shí)現(xiàn)我們說(shuō)的那種聊天效果。

找找原因吧。

我***反映看看$map里面是什么,就輸出看看,結(jié)果發(fā)現(xiàn)這個(gè)map里面只有一個(gè)元素。

唉,不對(duì)啊,我這是全局變量,難道不應(yīng)該是有幾個(gè)客戶(hù)端鏈接,就有幾個(gè)元素嗎?

這是怎么回事啊,竟然沒(méi)有保存到所有客戶(hù)端id?

到了這一步,我解決不了map變量的這個(gè)問(wèn)題了,然后我就想看看那個(gè)fd是什么東西,

老規(guī)矩 var_dump輸出 , 發(fā)現(xiàn)fd就是 int類(lèi)型的數(shù)字,并且是自增的

這好辦了,不就是數(shù)字嘛

于是呼,我就這樣做

變量存不了,我搞不定,我存文本里嘛。

最終版 websocket.php

  1. <?php 
  2.  
  3. $server = new swoole_websocket_server("0.0.0.0"9501); 
  4.  
  5. $server->on('open', function (swoole_websocket_server $server, $request) { 
  6. file_put_contents( __DIR__ .'/log.txt' , $request->fd); 
  7. }); 
  8.  
  9. $server->on('message', function (swoole_websocket_server $server, $frame) { 
  10. global $client; 
  11. $data = $frame->data; 
  12. $m = file_get_contents( __DIR__ .'/log.txt'); 
  13. for ($i=1 ; $i<= $m ; $i++) { 
  14. echo PHP_EOL . ' i is ' . $i . ' data is '.$data . ' m = ' . $m; 
  15. $server->push($i, $data ); 
  16.  
  17. }); 
  18.  
  19. $server->on('close', function ($ser, $fd) { 
  20. echo "client {$fd} closed\n"
  21. }); 
  22.  
  23. $server->start(); 

再次打開(kāi)html文件,多個(gè)頁(yè)面進(jìn)行輸入觀察,ok,可以了。

當(dāng)然,作為聊天室,我這寫(xiě)的也過(guò)于簡(jiǎn)陋了,界面大家自己可以寫(xiě)的好看一些(因?yàn)槲覒械膶?xiě)界面)

還有,每次的發(fā)送聊天的記錄,應(yīng)該存起來(lái),這樣,如果有新的連接連過(guò)來(lái)的時(shí)候,先把以前的聊天記錄發(fā)過(guò)去,這樣,我想體驗(yàn)更好一些

然后,大家可以愉快的聊天了。哈哈

責(zé)任編輯:chenqingxiang
相關(guān)推薦

2015-07-06 10:42:18

PHP聊天室應(yīng)用

2011-12-15 11:11:51

JavaNIO

2023-02-10 08:16:48

WebSocket簡(jiǎn)易聊天室

2025-10-16 10:00:00

運(yùn)維vim編輯器

2009-11-04 16:13:18

ADO.NET數(shù)據(jù)表

2020-12-07 09:01:58

冪等系統(tǒng)f(f(x)) =f(

2009-11-16 10:53:30

Oracle Hint

2024-12-11 07:00:00

面向?qū)ο?/a>代碼

2025-03-13 06:22:59

2022-07-26 14:53:10

WebSocket網(wǎng)絡(luò)通信協(xié)議

2020-06-16 08:47:53

磁盤(pán)

2022-08-22 08:32:17

招聘函數(shù)string

2021-01-18 05:59:21

開(kāi)發(fā)桌面版應(yīng)用技術(shù)熱點(diǎn)

2024-08-19 08:29:40

2024-06-25 12:25:12

LangChain路由鏈

2024-06-19 10:41:06

2021-08-01 21:38:07

網(wǎng)頁(yè)點(diǎn)燈網(wǎng)關(guān)

2023-05-27 21:13:34

FlaskURL裝飾器

2009-10-22 16:18:19

Oracle表空間

2024-09-18 08:21:24

JavaScriptTypeScriptprototype
點(diǎn)贊
收藏

51CTO技術(shù)棧公眾號(hào)

性色av香蕉一区二区| 7777精品伊人久久久大香线蕉完整版| 国内精品二区| 中日韩av在线| 欧美日韩一区二区国产| 精品成a人在线观看| 国产精品亚洲αv天堂无码| 免费黄色在线| 久久综合av免费| av一区二区三区免费| 国产寡妇亲子伦一区二区三区四区| 日韩中文首页| 亚洲精品日韩欧美| 亚洲三级在线视频| 精品国产欧美日韩一区二区三区| 亚洲精品菠萝久久久久久久| 日本不卡久久| 五月激情婷婷网| 国产中文字幕精品| 国产成人亚洲综合91精品| 欧美日韩在线观看成人| 成人同人动漫免费观看| 亚洲美女av电影| 在线精品视频播放| 国产精品亚洲四区在线观看| 欧美日韩在线免费| av网站手机在线观看| 久久综合之合合综合久久| 久久久欧美精品sm网站| 国产精品夜夜夜一区二区三区尤| 一区二区不卡视频在线观看| 老司机午夜精品视频在线观看| 国内揄拍国内精品少妇国语| 青春草免费视频| 97精品视频| 深夜福利日韩在线看| 一级黄色片大全| 懂色av一区二区| 日韩一二三区不卡| 免费黄频在线观看| 国产日韩中文在线中文字幕| 欧美日韩国产一级片| av网站在线不卡| 久久久人成影片一区二区三区在哪下载 | 偷偷要91色婷婷| 成人在线观看毛片| 国产精品久久久久久福利| 国产精品伦一区| 日韩久久久久久久| sese一区| 亚洲欧美在线视频观看| 一本一本久久a久久精品综合妖精| 毛片在线播放网站| 欧美极品另类videosde| 亚洲精品不卡| 欧美日韩xx| 亚洲另类在线一区| 欧美国产视频一区| 24小时免费看片在线观看| 亚洲福中文字幕伊人影院| youjizz.com在线观看| 黄页网站在线| 富二代精品短视频| 日本一极黄色片| 欧美成人三级| 91精品国产综合久久婷婷香蕉 | 9999久久久久| 亚洲福利在线看| 国产三级av在线播放| 欧美日中文字幕| 久久久极品av| 日本一区二区三区四区五区| 国产日产高清欧美一区二区三区| 国产成人+综合亚洲+天堂| 中文字幕第99页| 国产成人久久精品77777最新版本| 国产91视觉| 精品av中文字幕在线毛片| 国产精品久久久久久久蜜臀| 国产系列第一页| 国产蜜臀在线| 在线免费精品视频| 日韩高清在线一区二区| 免费成人蒂法| 色偷偷av亚洲男人的天堂| 欧美极品aaaaabbbbb| 亚洲影视综合| 成人淫片在线看| 午夜在线视频免费| 中文字幕一区免费在线观看| 久久国产午夜精品理论片最新版本| 久久uomeier| 欧美一区二区三区喷汁尤物| 三级男人添奶爽爽爽视频 | 久久亚洲a v| www.精品| 欧美成人女星排名| 国产jjizz一区二区三区视频| 中文字幕一区二区三区在线视频| 97视频在线观看视频免费视频| 中文字幕人妻一区二区在线视频| 高清在线成人网| 日日骚一区二区网站| 色呦呦呦在线观看| 欧美男男青年gay1069videost| 久久久久亚洲av成人网人人软件| 欧美日韩一二三四| 欧美亚洲国产另类| 精品人妻久久久久一区二区三区 | 日韩美女天天操| 国产精品视频在| 国产精品日韩欧美一区| 91九色视频在线观看| 成人在线视频成人| 色综合久久久久久久久| 性生交大片免费看l| 欧美精选一区二区三区| 91精品国产色综合| 成人激情四射网| 中文字幕日本不卡| 超碰在线人人爱| 一本久久青青| 98精品在线视频| 成人毛片在线免费观看| 亚洲美女屁股眼交| 网站在线你懂的| 精品国产123区| 日本人成精品视频在线| 天天干天天草天天射| 亚洲黄色小视频| 日本一二三区在线| 91超碰成人| 国产日韩中文在线| 亚洲视频tv| 欧美日韩一区 二区 三区 久久精品| xxxx日本免费| 欧美资源在线| 日本免费高清一区二区| 亚洲精品动漫| 亚洲欧美中文日韩在线v日本| 欧美不卡视频在线观看| av一本久道久久综合久久鬼色| 国产www免费| 久久动漫网址| 2019中文字幕免费视频| 欧美色18zzzzxxxxx| 欧美性猛交xxxx黑人猛交| 黄色录像a级片| 亚洲一区视频| 欧美在线视频二区| 国产私拍福利精品视频二区| 色一区av在线| 国产精品一区二区av白丝下载| 亚洲欧洲性图库| а 天堂 在线| 1024精品一区二区三区| 韩国一区二区三区美女美女秀| 成入视频在线观看| 亚洲美女在线看| 中文字幕乱码视频| 自拍偷拍国产精品| 日本一区二区免费视频| 99日韩精品| 色女孩综合网| 中文字幕日韩亚洲| 欧美精品www| 日韩中文字幕观看| 色综合天天狠狠| 色偷偷男人天堂| 国产麻豆视频精品| www国产精品内射老熟女| 国产探花在线精品| 成人午夜两性视频| 天天综合av| 中文字幕日韩电影| xxxx18国产| 欧美日韩一区二区三区| 三级黄色片在线观看| 懂色一区二区三区免费观看| 亚洲国产精品久久久久婷蜜芽| 国产欧美日韩一区二区三区四区 | 欧美性生活一级片| 国产精品久久一区主播| 色屁屁www国产馆在线观看| 国产午夜精品久久久| 国产精品嫩草影院桃色| 午夜国产不卡在线观看视频| 久久免费手机视频| 丁香六月综合激情| 性欧美极品xxxx欧美一区二区| 中文字幕亚洲综合久久五月天色无吗''| 好吊色欧美一区二区三区| 国产精品.xx视频.xxtv| 国内精品久久久久久久| 最新真实国产在线视频| 精品国产乱码久久久久久牛牛 | 国产麻豆精品theporn| 国产a级一级片| 在线成人超碰| 日韩免费av电影| 国产精品白浆| 91欧美日韩一区| 欧美日韩五区| …久久精品99久久香蕉国产| www红色一片_亚洲成a人片在线观看_| 亚洲毛片在线观看| 亚洲精品久久久久久无码色欲四季 | 麻豆一二三区精品蜜桃| 日韩女在线观看| av岛国在线| 精品久久久av| 成人免费在线电影| 亚洲精品日韩在线| 免费看黄色一级视频| 欧美丰满高潮xxxx喷水动漫| 中文字幕在线播| 精品久久久中文| 国产在线视频第一页| 成人欧美一区二区三区在线播放| 国产伦精品一区二区三区妓女| 丁香婷婷深情五月亚洲| 亚洲女人在线观看| 久草精品在线观看| 特级丰满少妇一级| 日韩和欧美一区二区三区| 欧美一级在线看| 亚洲毛片视频| 国产h视频在线播放| 一区免费视频| 日本一道在线观看| 中文无码久久精品| 乱子伦一区二区| 亚洲色图网站| 2021国产视频| 午夜国产欧美理论在线播放| 久久综合亚洲精品| 欧美三级网页| 欧美久久在线观看| 一区二区三区高清视频在线观看| 亚洲理论电影在线观看| 狠狠入ady亚洲精品经典电影| 国产精品自拍合集| 韩国亚洲精品| 国产精品无码av在线播放| 国产日韩欧美在线播放不卡| 国产视频一视频二| 久久综合狠狠| 天天操天天爱天天爽| 奇米精品一区二区三区在线观看一| 午夜免费一区二区| 精品一二三四区| 涩涩网站在线看| 国产精品一二二区| 国产成人av片| 91麻豆.com| 五月激情四射婷婷| 亚洲免费av网站| 久久婷婷国产麻豆91| 天天综合色天天综合色h| 伦av综合一区| 欧美精品丝袜中出| 精品人妻av一区二区三区| 亚洲国产三级网| 国外av在线| 精品精品国产国产自在线| 丁香花高清在线观看完整版| 91成人福利在线| 黑人一区二区三区| 国产精品成人一区二区三区| 色婷婷综合久久久久久| 亚洲精美视频| 尹人成人综合网| 日本va中文字幕| 国产尤物一区二区在线| 午夜男人的天堂| 中文无字幕一区二区三区| 日韩a级片在线观看| 欧美日韩激情视频| 91禁在线观看| 亚洲激情在线观看视频免费| aaa在线免费观看| 欧美激情免费在线| 电影久久久久久| 99se婷婷在线视频观看| 免费一区二区| 免费极品av一视觉盛宴| 久久永久免费| www.黄色网| 欧美韩国日本一区| 91香蕉在线视频| 91精品国产91久久久久久一区二区| 日韩一级片免费看| 日韩一二三在线视频播| 日韩伦理在线| 51国偷自产一区二区三区 | 在线观看中文字幕亚洲| h网站久久久| 国产成人精品免高潮在线观看| 999国产精品一区| 一区二区三区免费看| 中文高清一区| 蜜桃视频无码区在线观看| 欧美激情在线看| 日韩黄色一级大片| 欧美一级电影网站| 欧美尤物美女在线| 国产成人精品综合| 欧美黄色网视频| 久久99久久久久久| 国产自产v一区二区三区c| 30一40一50老女人毛片| 亚洲国产精品一区二区久久| 91在线视频国产| 伊人久久免费视频| 超级碰碰久久| 精品一卡二卡三卡四卡日本乱码 | 国产精品视频999| 九色成人国产蝌蚪91| 色欲色香天天天综合网www| 国产另类ts人妖一区二区| 成人性视频免费看| 欧美网站一区二区| 国产精品一级伦理| 日本中文字幕不卡免费| 奇米777国产一区国产二区| 男人添女荫道口图片| 国产成人免费在线观看不卡| 少妇人妻丰满做爰xxx| 7777精品伊人久久久大香线蕉超级流畅| 国产福利电影在线| 国产成人精品久久亚洲高清不卡| 三级小说欧洲区亚洲区| 浮妇高潮喷白浆视频| 不卡欧美aaaaa| 国产情侣在线视频| 亚洲精品美女久久久久| 理论不卡电影大全神| 精品一区二区久久久久久久网站| 亚洲黄色大片| 成人h动漫精品一区| 五月激情综合网| 日本福利在线观看| 日韩美女视频免费在线观看| 精品盗摄女厕tp美女嘘嘘| 第四色婷婷基地| 中文字幕制服丝袜一区二区三区| 亚洲综合免费视频| 久久久精品网站| 亚洲午夜免费| 精品无码国模私拍视频| www成人在线观看| 日本欧美www| www.亚洲成人| 超碰97成人| 免费在线激情视频| 欧美国产亚洲另类动漫| 国产理论视频在线观看| 欧美国产中文字幕| 青青视频一区二区| xxxx一级片| 伊人色综合久久天天| 水莓100在线视频| 国产精品成人在线| 91精品国产91久久久久久密臀 | 国产精品17p| 国产真人无码作爱视频免费| 国产精品久久久久久久午夜片| www.久久精品.com| 日本一区二区在线播放| 97精品97| 亚洲天堂成人av| 欧美日韩情趣电影| 欧美wwww| 四虎一区二区| 丁香亚洲综合激情啪啪综合| 亚洲 欧美 中文字幕| 美女久久久久久久久久久| 欧美日韩看看2015永久免费| 亚洲欧美视频二区| 亚洲成人免费影院| 伊人在线视频| 久久99久久精品国产| 久久精品国产99国产精品| 精品处破女学生| 国产一区二区三区视频| 91精品短视频| 亚洲免费一级视频| 亚洲va中文字幕| 国内精品不卡| 茄子视频成人在线观看| 国产成人在线观看免费网站| 夜夜爽妓女8888视频免费观看| 欧美精品免费看| 国产精品一区二区av日韩在线| 国产探花一区二区三区| 欧美性生活一区| 岛国在线视频网站| 狠狠精品干练久久久无码中文字幕 | 国产91一区二区三区| 麻豆成人91精品二区三区|