swoole websocket_server 聊天室--群聊
centos7 php7.2 swoole4.3 nginx1.8
websocket_server 代码
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
|
<?php $server = new Swoole\WebSocket\Server( "0.0.0.0" , 9502); $server ->on( 'open' , function (Swoole\WebSocket\Server $server , $request ) { echo "server: handshake success with fd{$request->fd}\n" ; }); $server ->on( 'message' , function (Swoole\WebSocket\Server $server , $frame ) { echo "receive from {$frame->fd}:{$frame->data},opcode:{$frame->opcode},fin:{$frame->finish}\n" ; //$server->push($frame->fd, $frame->data); foreach ( $server ->connections as $k => $v ) { $server ->push( $v , "会员" . $frame ->fd. ":" . $frame ->data); } }); $server ->on( 'close' , function ( $ser , $fd ) { echo "client {$fd} closed\n" ; }); $server ->start(); ?> |
websocket.html
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
|
<!DOCTYPE html> <html lang= "en" > <meta charset= "UTF-8" > <head> <style> *{ margin:0px; padding:0px; } </style> </head> <body> <div style= "margin-left:400px" > <div style= "border:1px solid;width: 600px;height: 500px;" > <div id= "msgArea" style= "width:100%;height: 100%;text-align:start;resize: none;font-family: 微软雅黑;font-size: 20px;overflow-y: scroll" ></div> </div> <div style= "border:1px solid;width: 600px;height: 200px;" > <div style= "width:100%;height: 100%;" > <textarea id= "userMsg" style= "width:100%;height: 100%;text-align:start;resize: none;font-family: 微软雅黑;font-size: 20px;" ></textarea> </div> </div> <div style= "border:1px solid;width: 600px;height: 25px;" > <button style= "float: right;" onclick= "sendMsg()" >发送</button> </div> </div> </body> </html> <script src= "http://bbc.weeton.cn/jquery-1.8.1.min.js" ></script> <script> var ws; $( function (){ link(); }) function link () { ws = new WebSocket( "ws://106.13.8.114:9502" );//连接服务器 ws.onopen = function (event){ console.log(event); alert( '连接了' ); }; ws.onmessage = function (event) { var msg = "<p>" +event.data+ "</p>" ; $( "#msgArea" ).append(msg); } ws.onclose = function (event){alert( "已经与服务器断开连接\r\n当前连接状态:" +this.readyState);}; ws.onerror = function (event){alert( "WebSocket异常!" );}; } function sendMsg(){ var msg = $( "#userMsg" ).val(); ws.send(msg); } </script> |
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 阿里最新开源QwQ-32B,效果媲美deepseek-r1满血版,部署成本又又又降低了!
· 单线程的Redis速度为什么快?
· SQL Server 2025 AI相关能力初探
· AI编程工具终极对决:字节Trae VS Cursor,谁才是开发者新宠?
· 展开说说关于C#中ORM框架的用法!