欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  IT编程

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

相关标签: # swoole