Swoole
yí無所冇
这个作者很懒,什么都没留下…
展开
-
swoole通用类库,不管你用的什么框架,一个类库全部搞定!!!
研究swoole一段时间了,但是swoole对于新手来说还是有一定的难度的,所以今天研究了下,写了一个通用的类库,这样可以直接在框架中引入调用就可以了,不多说,看代码吧. 先看一个代码的结构图: 也许熟悉TP5.1的小伙伴们看出来了,没错,这里面演示的就是在Tp5.0中的调用 先是关键核心的...原创 2018-07-18 16:03:15 · 2138 阅读 · 1 评论 -
Swoole的基本语法
linux的基础命令: 1.netstat -anp|grep 9501 查看9051端口; 2.telnet 127.0.0.1 9501 监听9501端口; 3.kill -9 XXX 强制杀死...原创 2018-04-28 17:44:55 · 4603 阅读 · 0 评论 -
Swoole在Tp5.1中的使用
1.1 面向过程方案<?php/** * Created by PhpStorm. * User: baidu * Date: 18/2/28 * Time: 上午1:39 */$http = new swoole_http_server("0.0.0.0", 9501);$http->set([ 'worker_num' => 5,]);$h...原创 2018-05-04 18:12:32 · 11707 阅读 · 1 评论 -
Swoole的push和listen用法
1.1Push在控制器中的用法swoole_server::$connectionsTCP连接迭代器,可以使用foreach遍历服务器当前所有的连接,此属性的功能与swoole_server->connnection_list是一致的,但是更加友好。遍历的元素为单个连接的fd。注意$connections属性是一个迭代器对象,不是PHP数组,所以不能用var_dump或者数组下标...原创 2018-05-05 11:30:20 · 4052 阅读 · 0 评论 -
websocket的推送在控制器中调用和实现
首先,websocket是基于Server的子类,所以可以调用Server的一部分方法,但是需要监听其他的端口,并在控制器中加载调用swoole_client方法话不多说,上代码;封装的web_socket.php<?phpnamespace app\common;include 'Predis.php';/*** socket面向对象的编译*/class ...原创 2018-05-08 13:43:55 · 1302 阅读 · 0 评论 -
swoole利用task分发任务案例(群发短信)
利用了swoole监听其他的端口9502实现对task的任务分发swoole的代码<?phpnamespace app\common;include 'Predis.php';include 'Task.php';/*** socket面向对象的编译*/class Ws{ CONST HOST='0.0.0.0'; CONST PORT='9...原创 2018-05-12 10:43:28 · 13280 阅读 · 0 评论 -
php在swoole的多线程实现以及多线程爬虫构造
在swoole中,php可以借助其启动子进程的方式,实现php的多进程; <?php echo '开始时间:'.date('H:i:s',time());//进程数$work_number=6;//$worker=[];//模拟地址$curl=[ 'https://blog.csdn.net/feiwutudou', 'https://wiki.swoole....原创 2018-05-15 14:14:13 · 11560 阅读 · 4 评论 -
swoole的内存管理swoole_table
内存操作模块之:Table swoole_table一个基于共享内存和锁实现的超高性能,并发数据结构 使用场景:用于解决多进程/多线程数据共享和同步加锁问题 进程结束后内存表会自动释放// 创建内存表$table = new swoole_table(1024);// 内存表增加一列$table->column('id', $table::TYPE_I...原创 2018-05-15 16:41:31 · 10734 阅读 · 0 评论 -
swoole的心跳检测
swoole提供了一个心跳的功能,很多朋友感到困惑。 心跳是什么?顾名思义,心跳是判断一个事物生还是死的一个标准,在swoole里,心跳是指用来判断一个连接是正常还是断开的。从TCP协议说起我们都知道一个五元组标识一个网络连接,创建一个连接有三次握手,而断开一个连接有四次挥手。不管是服务器还是客户端发起连接的关闭,都会完整的走完四次挥手的过程,这样,一切很完美,系统回...原创 2018-05-18 15:32:38 · 8072 阅读 · 0 评论 -
web socket在https下利用nginx的转发
可以利用nginx的反向代理,直接去转发web socket,这里所监听的端口是不一样的;先看html的内容:<!DOCTYPE html><html><head> <meta charset="utf-8"> <title>我是来测试的</title></head>&am原创 2018-05-26 15:56:16 · 9722 阅读 · 0 评论 -
swoole创建多人多房间聊天室一
核心的swoole代码 基本的cs(client-sercer)结构不变,这里利用的是redis的哈希和set来储存和分组;从而达到了分组,统计,定时推送等功能;最后利用onclose事件来剔除断开的连接,全部代码如下:(没做前端,就不展示了) 核心的swoole ws.php <?phpnamespace app\common;requir...原创 2018-06-13 11:52:01 · 11667 阅读 · 0 评论 -
swoole创建多人多房间聊天室二
这次写的不依赖框架,不用nginx配置,只是依靠swoole的http_server和websocket,也是用的多端口监听,一边实现了web端的访问,一边实现了socket的发送; 文档在这里,可以多认真的读一下:https://wiki.swoole.com/wiki/page/525.html好的,直接上码; http.php<?phpnamesp...原创 2018-06-21 16:28:57 · 5414 阅读 · 0 评论 -
swoole创建多人多房间聊天室三
在上一个例子中,实现了多房间的多人聊天,这次这个聊天室有所改变,需要做到类似微信或QQ那样(app,pc同时使用),多个端口登入,保证数据的同时传递,考虑了很久,最好的办法就是在之前代码的基础上,再加一层redis的关系,结构脑图如下: 简单点说也就是group->房间room_id->uid->fd,因为全是键值对的关系...原创 2018-06-22 15:41:10 · 5488 阅读 · 1 评论 -
swoole websocket 支持ssl,修改成https
1. 安装swoole的openssl支持。重新编译安装swoole源码,加上--enable-openssl%PHP_BIN%/phpizecd swoole_src./configure --enable-opensslmake && make install利用php --ri swoole来查看是否安装成功,如图就是已经安装成功; 2. 代码中使用w...原创 2018-06-25 10:57:24 · 7277 阅读 · 0 评论 -
swoole的进程管理(Process)
进程,线程,协程 首先得说一下基础,就是进程,线程与协程,大小的关系是进程>线程>协程,而我们所说的swoole让php实现了多线程,其实在这里来说,就是好比让php创建了多个进程,每个进程执行一条线程,从而实现了php"多线程"(java是在一个进程内创建多个线程). 子进程的创建<?php //创建一个进程$process = new s...原创 2018-06-29 15:32:44 · 1161 阅读 · 0 评论 -
利用redis(订阅模式)+swoole实现实时推送
目录前言直接上代码注意前言一直在做swoole的websocket,之前是利用swoole的client->send()来使用,后来一直想用redis的订阅模式来实现(其实早就有人做了),今天来实现以下方法.直接上代码socket.php的核心文件<?phpuse socket\Predis;require 'Predis.php';class jieshou{...原创 2019-04-23 16:16:14 · 2834 阅读 · 0 评论