精品欧美一区二区三区在线观看 _久久久久国色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)

欧美亚洲另类制服自拍| 日韩精品一区二区三区视频 | www成人免费| 欧美视频一二区| 久久先锋影音| 九九热在线精品视频| 亚洲熟女乱综合一区二区三区| 自拍偷拍欧美视频| 亚洲色图20p| 国产精品一品二品| 亚洲男人av在线| 天天看片天天操| 天天综合av| 亚洲三级免费电影| 色99中文字幕| 色欲av伊人久久大香线蕉影院| 日韩电影在线观看一区| 欧美精品video| 日韩一级片在线免费观看| 6080成人| 欧美精品 国产精品| 夫妻免费无码v看片| gogo在线高清视频| 国产日本欧洲亚洲| 精品一区在线播放| 亚洲欧美激情在线观看| 美国欧美日韩国产在线播放| 国产69久久精品成人看| 国产亚洲小视频| 天天操夜夜操国产精品| 亚洲欧美在线免费| 日本一卡二卡在线| 中文字幕亚洲在线观看 | 欧美激情国产精品| 久久精品一区二区三区四区五区| 偷拍亚洲色图| 日韩电视剧在线观看免费网站| 91免费视频污| 不卡一区视频| 欧美日韩高清一区二区三区| 国产成人精品无码播放| 日韩精品av| 黄色成人av网| 日本韩国欧美在线观看| 第一av在线| 亚洲高清在线精品| 欧美乱做爰xxxⅹ久久久| 国产成人高清精品| 亚洲婷婷在线视频| 一区二区三区在线观看www| av电影在线网| 国产精品污网站| 亚洲国产午夜伦理片大全在线观看网站 | 在线丝袜欧美日韩制服| 日本天堂在线观看| 国产精品传媒入口麻豆| 国产麻豆电影在线观看| 久久77777| 亚洲欧美一区二区久久| 欧美少妇在线观看| 四虎亚洲成人| 亚洲成人在线免费| 欧美视频在线免费播放| 午夜影院在线播放| 色国产综合视频| 一区二区成人网| 先锋影音网一区二区| 3d成人h动漫网站入口| 美女被艹视频网站| 风间由美性色一区二区三区四区| 亚洲国产精久久久久久| 香蕉网在线播放| 欧美视频网址| 久久综合久久美利坚合众国| 国产一国产二国产三| 日韩午夜在线电影| 国产成人小视频在线观看| 中文字幕乱伦视频| 国产真实乱子伦精品视频| 91视频99| 日韩专区一区二区| 国产精品丝袜一区| 草草草视频在线观看| 麻豆mv在线看| 欧美日韩不卡在线| zjzjzjzjzj亚洲女人| 综合国产视频| 久久成年人视频| 圆产精品久久久久久久久久久| 久久亚洲欧洲| 91精品视频在线| 天堂在线视频网站| 国产精品久久久久久久久晋中| 欧美交换配乱吟粗大25p| 国产在线精彩视频| 欧美日本一区二区| 国产精品无码专区| 国产精品久久久久蜜臀| 91国内揄拍国内精品对白| 中文字幕精品一区二| 成人av在线资源网站| 日本高清不卡一区二区三| 欧美xxxx做受欧美88bbw| 91国偷自产一区二区开放时间| 日韩欧美中文视频| 精品高清在线| 91黄色8090| 国产av无码专区亚洲av| 国产亚洲人成网站| 日韩精品在线视频免费观看| 九七电影院97理论片久久tvb| 337p日本欧洲亚洲大胆精品| 男人av资源站| 老司机久久99久久精品播放免费| dy888夜精品国产专区| jizz在线观看中文| 黑丝美女久久久| 又黄又爽又色的视频| 欧美三级伦理在线| 69视频在线免费观看| 国产哺乳奶水91在线播放| 久久精品亚洲精品国产欧美| 日韩欧美国产综合在线| 精品久久国产一区| 日韩中文在线中文网三级| www.com国产| 成人ar影院免费观看视频| 超薄肉色丝袜足j调教99| 日本欧美一区| 亚洲精品国精品久久99热| 久久机热这里只有精品| 国产综合一区二区| 一区二区免费在线视频| 国产极品久久久久久久久波多结野| 日韩成人性视频| 日韩欧美大片在线观看| 国产成人免费视频网站| 成人免费看片视频在线观看| 亚洲精品毛片| 国产一区二区三区精品久久久 | 欧美黑人性猛交xxx| 免费观看在线综合色| 欧洲成人一区二区| 日韩网站中文字幕| 亚洲天堂成人在线| 国产男人搡女人免费视频| 久久久九九九九| 成人精品视频一区二区| 亚洲aaa级| 日韩美女免费线视频| 国产视频二区在线观看| 91成人在线免费观看| 久久久久久九九九九九| 视频一区欧美日韩| 日韩免费电影一区二区三区| 国产在线|日韩| 最新国产精品拍自在线播放| 影音先锋国产资源| 亚洲天堂2016| 国产在线观看免费播放| 影音先锋中文字幕一区| 久久精品女人的天堂av| 另类图片综合电影| 一区二区三区视频免费在线观看| 中文字幕在线网址| 亚洲色图第一区| 熟妇高潮一区二区| 老司机午夜免费精品视频 | 草草地址线路①屁屁影院成人| 国产日韩欧美一区二区三区在线观看| 麻豆传媒一区二区| 99蜜月精品久久91| 欧美成人黄色小视频| 欧美一区二区黄片| 91福利国产精品| 欧美三级黄色大片| 波多野结衣在线aⅴ中文字幕不卡| aa在线观看视频| 日本不卡电影| 97碰碰视频| 影视一区二区三区| 欧美精品免费在线| 视频一区二区在线播放| 欧美在线不卡一区| 国产高清在线免费观看| 99re免费视频精品全部| 日韩一级理论片| 911精品美国片911久久久| 狠狠色综合色区| 国产美女久久| 97久久久免费福利网址| 成年人在线观看| 精品国产乱码久久久久久蜜臀| 日本视频网站在线观看| 亚洲精品国产精华液| 好吊日免费视频| 国产精品99久久久久久宅男| 丁香花在线影院观看在线播放| 日韩欧美一区二区三区在线视频 | 欧美 日韩 国产 精品| 色噜噜夜夜夜综合网| 欧美精品99久久久| 中文字幕欧美激情一区| 艳妇乳肉豪妇荡乳xxx| 久久精品国产亚洲一区二区三区| 男人添女人下部高潮视频在观看| 久久免费精品视频在这里| 国产一区二区三区黄| 麻豆视频久久| 国产精品视频26uuu| 国产免费拔擦拔擦8x高清在线人| 日韩视频欧美视频| 男人天堂亚洲二区| 亚洲国产97在线精品一区| 国产伦理吴梦梦伦理| 在线观看一区日韩| 成人精品免费在线观看| 一区二区三区四区不卡视频| 自拍偷拍第9页| 国产日韩一级二级三级| 国产精品无码网站| 国产电影一区在线| 最新av免费在线观看| 日韩精品成人一区二区在线| 国产97在线 | 亚洲| 伊人久久大香线蕉综合热线| 亚洲免费视频播放| 99久久激情| 亚洲视频精品一区| 国产日产一区| 蜜桃成人免费视频| 婷婷精品在线观看| 久久久精品动漫| 加勒比久久高清| 国产精品久久久久久久久久直播 | 精品精品国产国产自在线| 春暖花开成人亚洲区| 国产亚洲一区二区精品| 国产资源在线播放| 国产亚洲精品高潮| 国产高清免费在线播放| 国产亚洲欧洲高清一区| 国产大片在线免费观看| 夜夜嗨av色综合久久久综合网| 九色视频在线观看免费播放| 亚洲人在线视频| 成人欧美一区| 最近2019免费中文字幕视频三| 97超碰人人在线| 久久精品国产一区二区三区| 黄色小网站在线观看| 久久久精品免费| 日本三级韩国三级欧美三级| 欧美黑人性生活视频| 51av在线| 国产97在线亚洲| 国产69精品久久| 91亚洲国产精品| 一本色道69色精品综合久久| 国产精品制服诱惑| 亚洲bt欧美bt精品777| 日韩午夜视频在线观看| 欧美wwwww| 国产精品免费看久久久无码| 日韩视频一区| www日韩视频| 九一久久久久久| 国产调教打屁股xxxx网站| 99热这里都是精品| 免费在线观看a视频| 中文字幕欧美一区| 国产真人真事毛片| 色悠久久久久综合欧美99| 亚洲天堂中文网| 欧美大片免费久久精品三p| 四虎影视在线播放| 最新中文字幕亚洲| av人人综合网| 国产精品欧美激情| 亚洲精品福利| 茄子视频成人在线观看 | 国产av无码专区亚洲a∨毛片| 亚洲精品一区二区三区福利| 免费福利在线视频| 美女精品久久久| 欧美激情喷水| 91午夜理伦私人影院| 日韩超碰人人爽人人做人人添| 亚洲v国产v| 樱桃成人精品视频在线播放| 亚洲视频在线观看一区二区三区| 国产精品中文字幕一区二区三区| 性欧美丰满熟妇xxxx性久久久| 1000部国产精品成人观看| 日韩精品一区二区三| 欧美久久久久久蜜桃| 五月天婷婷社区| 免费91在线视频| 黄瓜视频成人app免费| **亚洲第一综合导航网站| 国产亚洲一区| 久久亚洲精品无码va白人极品| 蜜臀av一区二区| 久久精品老司机| 亚洲精品国产一区二区三区四区在线| 欧美一区二区三区久久久| 日韩女优av电影在线观看| av福利在线播放| 日韩av不卡电影| 北条麻妃在线一区二区免费播放| 亚洲最新在线| 日韩中文字幕麻豆| 国产精品99精品无码视亚| 一区在线观看免费| 亚洲欧美日韩激情| 亚洲国产精品va在线看黑人动漫| 黄色动漫在线| 国产欧美日韩精品在线观看| 亚洲欧洲色图| 日本网站免费在线观看| 国产不卡免费视频| 亚洲天堂黄色片| 91精品国产麻豆| 伊人在线视频| 国产精品老牛影院在线观看| 久久99性xxx老妇胖精品| 免费无码毛片一区二三区| 国产成人av一区| 欧美色图一区二区| 56国语精品自产拍在线观看| 97在线观看免费观看高清| 国产精品99蜜臀久久不卡二区| 欧美丝袜美腿| 日本网站免费在线观看| 91污在线观看| 亚洲GV成人无码久久精品 | 网友自拍视频在线| 国产精品视频26uuu| 色97色成人| 日日干夜夜操s8| 国产精品福利影院| 亚洲一区中文字幕永久在线| 在线观看国产精品日韩av| 香蕉成人影院| 亚洲精品在线观看免费| 久久电影网电视剧免费观看| 网站永久看片免费| 欧美二区三区91| 97caopron在线视频| 97国产超碰| 一本综合久久| 久久久久久久久久久国产精品| 福利微拍一区二区| 欧美偷拍视频| 国产精品免费视频xxxx| 日韩在线观看| 亚洲制服在线观看| 亚洲一二三区视频在线观看| 免费国产精品视频| 欧美一区第一页| 色一区二区三区四区| 天堂av.com| 性做久久久久久久免费看| 欧洲一级在线观看| 成人黄色在线观看| 国产精品草草| 加勒比一区二区| 欧美日韩激情在线| 久久亚洲导航| 欧美一区二区综合| 久久av老司机精品网站导航| 免费网站看av| 亚洲视频在线观看视频| 超碰国产精品一区二页| 日本网站免费在线观看| 中文字幕精品一区| 亚洲高清精品视频| 欧美最顶级丰满的aⅴ艳星| 国产韩国精品一区二区三区| 亚洲成人福利视频| 91传媒视频在线播放| 欧美亚洲系列| 日本欧美色综合网站免费| 国产一区二区电影| 日韩精品在线免费视频| 久久精品国产精品亚洲| 成人福利一区| 天堂一区在线观看| 亚洲地区一二三色| 日本在线视频网| 久久精品国产精品青草色艺| 久久国产精品72免费观看| 中国一级特黄毛片| 久久影视免费观看| 欧美美女在线| 高清中文字幕mv的电影| 欧美精品亚洲二区| 最近在线中文字幕| 国产一级不卡视频| 国产精品乱人伦中文|