swoole 学习小结
程序员文章站
2022-03-13 17:17:12
websocket_server.php<?php/** * Created by PhpStorm. * User: Mac * Date: 2019-01-06 * Time: 13:04 *///1创建服务器 $server=new swoole_websocket_server("0.0.0.0",9504);//3注册事件//连接上 $serv......
websocket_server.php
<?php /** * Created by PhpStorm. * User: Mac * Date: 2019-01-06 * Time: 13:04 */ //1创建服务器 $server=new swoole_websocket_server("0.0.0.0",9504); //3注册事件 //连接上 $server->on("open",function (){ echo '连接上了wjp'; }); //接受发送 $server->on("message",function ($server,$frame){ echo '收到消息wjp'.$frame->data,"\n"; foreach($server->connections as $fd){ $server->push($fd,$frame->data); } }); //断开连接 $server->on("close",function(){ echo '断开连接wjp'; }); //2启动服务器 $server->start();
add.html=>发送推送信息
<!DOCTYPE html> <html lang="zh-CN"> <head> <meta charset="utf-8"> <meta http-equiv="X-UA-Compatible" content="IE=edge"> <meta name="viewport" content="width=device-width, initial-scale=1"> <!-- 上述3个meta标签*必须*放在最前面,任何其他内容都*必须*跟随其后! --> <title>Bootstrap 101 Template</title> <!-- Bootstrap --> <link href="https://cdn.jsdelivr.net/npm/bootstrap@3.3.7/dist/css/bootstrap.min.css" rel="stylesheet"> <!-- HTML5 shim 和 Respond.js 是为了让 IE8 支持 HTML5 元素和媒体查询(media queries)功能 --> <!-- 警告:通过 file:// 协议(就是直接将 html 页面拖拽到浏览器中)访问页面时 Respond.js 不起作用 --> <!--[if lt IE 9]> <script src="https://cdn.jsdelivr.net/npm/html5shiv@3.7.3/dist/html5shiv.min.js"></script> <script src="https://cdn.jsdelivr.net/npm/respond.js@1.4.2/dest/respond.min.js"></script> <![endif]--> </head> <body> <form class="form-horizontal"> <fieldset> <div id="legend" class=""> <legend class="">添加推送消息</legend> </div> <div class="control-group"> <!-- Textarea --> <label class="control-label">消息内容</label> <div class="controls"> <div class="textarea"> <textarea type="" class="" rows="5" cols="100" id="content"> </textarea> </div> </div> </div> <div class="control-group"> <label class="control-label">Button</label> <!-- Button --> <div class="controls"> <button class="btn btn-success" id="push">推送</button> </div> </div> </fieldset> </form> <!-- jQuery (Bootstrap 的所有 JavaScript 插件都依赖 jQuery,所以必须放在前边) --> <script src="https://cdn.jsdelivr.net/npm/jquery@1.12.4/dist/jquery.min.js"></script> <!-- 加载 Bootstrap 的所有 JavaScript 插件。你也可以根据需要只加载单个插件。 --> <script src="https://cdn.jsdelivr.net/npm/bootstrap@3.3.7/dist/js/bootstrap.min.js"></script> <script> $(function () { //连接swoole服务器 var websocket= new WebSocket("ws://47.94.227.248:9504"); // console.log(websocket); //发送 websocket.onopen = function() { // Web Socket 已连接上,使用 send() 方法发送数据 websocket.send("khud发送数据www"); }; $("#push").on('click',function () { websocket.send($("#content").val()); $('#content').val(""); alert('推送消息成功'); return false; }); }); </script> </body> </html>
index.html =>展示推送的消息
<!DOCTYPE html> <html lang="zh-CN"> <head> <meta charset="utf-8"> <meta http-equiv="X-UA-Compatible" content="IE=edge"> <meta name="viewport" content="width=device-width, initial-scale=1"> <!-- 上述3个meta标签*必须*放在最前面,任何其他内容都*必须*跟随其后! --> <title>Bootstrap 101 Template</title> <!-- Bootstrap --> <link href="https://cdn.jsdelivr.net/npm/bootstrap@3.3.7/dist/css/bootstrap.min.css" rel="stylesheet"> <!-- HTML5 shim 和 Respond.js 是为了让 IE8 支持 HTML5 元素和媒体查询(media queries)功能 --> <!-- 警告:通过 file:// 协议(就是直接将 html 页面拖拽到浏览器中)访问页面时 Respond.js 不起作用 --> <!--[if lt IE 9]> <script src="https://cdn.jsdelivr.net/npm/html5shiv@3.7.3/dist/html5shiv.min.js"></script> <script src="https://cdn.jsdelivr.net/npm/respond.js@1.4.2/dest/respond.min.js"></script> <![endif]--> </head> <body> <ul class="list-group"> </ul> <!-- jQuery (Bootstrap 的所有 JavaScript 插件都依赖 jQuery,所以必须放在前边) --> <script src="https://cdn.jsdelivr.net/npm/jquery@1.12.4/dist/jquery.min.js"></script> <!-- 加载 Bootstrap 的所有 JavaScript 插件。你也可以根据需要只加载单个插件。 --> <script src="https://cdn.jsdelivr.net/npm/bootstrap@3.3.7/dist/js/bootstrap.min.js"></script> <script> $(function () { //连接swoole服务器 var websocket= new WebSocket("ws://47.94.227.248:9504"); // console.log(websocket); //发送 websocket.onmessage = function (evt) { var received_msg = evt.data; console.log(received_msg); $("<li class=\"list-group-item\">"+received_msg+"</li>").appendTo('.list-group'); }; }); </script> </body> </html>
本文地址:https://blog.csdn.net/qq_29058883/article/details/85984209