学习SWOOLE之Websocket

准备工作:
使用VMware软件安装Centos7 安装php7 和swoole扩展

<?php
//搭建websocket服务器
$ws=new swoole_websocket_server("0.0.0.0",9504);
/**
 * $ws 服务器信息
 * $request 客户端信息
 */
$ws->on("open",function ($ws,$request){
    echo "开始建立连接\n";
  //  $ws->push($request->fd,"终于等到你");
});
/**
 * 当接收信息的时候
 * $ws 服务器信息
 * $request 客户段信息
 */
$ws->on("message",function ($ws,$request){
        echo "message:".$request->data."\n";
        $result=file_get_contents("http://i.itpk.cn/api.php?question=".$request->data);
        $ws->push($request->fd,$result);
});


//关闭连接
$ws->on("close",function ($ws,$request){

    echo "关闭连接\n";
});


//启动服务器
$ws->start();

启动Webscoket服务
php Webscoket.php
在这里插入图片描述
查看服务是否启动
php -ajft
在这里插入图片描述

前端界面

<!DOCTYPE HTML>
<html>
<head>
    <meta charset="utf-8">
    <title>websocket</title>



</head>
<body>
<script src="https://code.jquery.com/jquery-3.1.1.min.js"></script>
<div id="sse">
    <input type="text" id="text"/>
    <button onclick="WebSocketTest()">发送</button>
    <div id="answer">

    </div>

</div>

</body>
</html>
<script type="text/javascript">
    function WebSocketTest()
    {
        if ("WebSocket" in window)
        {


            // 打开一个 web socket
            var ws = new WebSocket("ws://192.168.80.128:9504/");

            ws.onopen = function()
            {
                // Web Socket 已连接上,使用 send() 方法发送数据
                $text=$("#text").val();
                ws.send($text);
            };

            ws.onmessage = function (evt)
            {
                var received_msg = evt.data;
                var html="<div>"+received_msg+"</div>";
                $("#answer").append(html);
            };

            ws.onclose = function()
            {
                // 关闭 websocket
                alert("连接已关闭...");
            };
        }

        else
        {
            // 浏览器不支持 WebSocket
            alert("您的浏览器不支持 WebSocket!");
        }
    }
</script>

实现效果:
在这里插入图片描述

发布了77 篇原创文章 · 获赞 2 · 访问量 2万+

猜你喜欢

转载自blog.csdn.net/u014265398/article/details/104346705