swoole通用类库,不管你用的什么框架,一个类库全部搞定!!!

       研究swoole一段时间了,但是swoole对于新手来说还是有一定的难度的,所以今天研究了下,写了一个通用的类库,这样可以直接在框架中引入调用就可以了,不多说,看代码吧.

 先看一个代码的结构图:

                                      

也许熟悉TP5.1的小伙伴们看出来了,没错,这里面演示的就是在Tp5.0中的调用

 

先是关键核心的Http.php文件:

<?php
namespace sockets\socket6;
use sockets\socket6\Predis;
require_once 'Predis.php';
/**
 *    socket面向对象的编译
 */
class Http
{
    CONST HOST = '0.0.0.0';
    CONST PORT = '12316';
    public $ws = null;
    public $client = null;
    private $key = 'paiv3@$))(';
    private $prefix = 'paiv3_';
    public $pwd = "/www/wwwroot/wanguopai/swoole/";

    public function __construct()
    {
        // $this->ws=new \swoole_websocket_server(self::HOST,self::PORT,SWOOLE_PROCESS, SWOOLE_SOCK_TCP | SWOOLE_SSL);
        $this->ws = new \swoole_websocket_server(self::HOST, self::PORT);
        $this->ws->set([
            //心跳检测
            'heartbeat_check_interval' => 60,
            'heartbeat_idle_time' => 600,
            //设置证书,实现wss连接
            // 'ssl_cert_file' => $this->pwd.'pai.wanguo.net.crt',
            // 'ssl_key_file' => $this->pwd.'pai.wanguo.net.key',
        ]);
        //监听新端口
        $this->client = $this->ws->listen("127.0.0.1", 12317, SWOOLE_SOCK_TCP);
        //关闭websocket模式
        $this->client->set([
            'open_websocket_protocol' => false,
        ]);
        $this->ws->on("start", [$this, 'onStart']);
        $this->client->on("receive", [$this, 'onReceive']);
        $this->ws->on('message', [$this, 'onmessage']);
        $this->ws->on('close', [$this, 'onclose']);
        $this->client->on('close', [$this, 'oncloses']);
        $this->ws->start();
    }

    //监听数据接收事件
    public function onReceive($serv, $fd, $from_id, $data)
    {
        $data = json_decode($data, true);
        //成交
        if ($data['type'] == 'done') {
            self::push_room($data['room_id'],$data);
            $data['tips']=$room_id."已成交,最终成交价格:¥".$price."元";
            //推送全部
            self::push_all($data);
        }elseif ($data['type'] == 'msg') {
            //个人
            if ($data['totype']=='single') {
                unset($data['totype']);
                $id=$data["toid"];
                unset($data['toid']);
                self::push_single($id,$data);
            //房间
            }elseif ($data['totype']=='room') {
                unset($data['totype']);
                $id=$data["toid"];
                unset($data['toid']);
                self::push_room($id,$data);
            //全部
            }elseif ($data['
  • 2
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值