php - 使用pdo执行sql的insert操作出现灵异现象
在php的swoole websocket服务端的onMessage回调函数中执行这条命令,结果数据库里面的内容完全和sql指定的不符合。 下面是这张表的DDL CREATE TABLE `gobang_rooms` ( `id` int(10) unsigned NOT NULL AUTO_INCREMENT, `black_uid` int(10) unsigned DEFAULT NULL, `black_seconds` mediumint(5) unsigned DEFAULT NULL COMMENT '黑方读秒', `white_uid` int(10) unsigned DEFAULT NULL, `white_seconds` mediumint(5) unsigned DEFAULT NULL, `last_player` tinyint(3) unsigned DEFAULT NULL, `create_time` int(1
134 2022-07-19
编程技术问答社区
php - swoole中的websocket的如何发给指定人消息.
问 题 swoole版本:1.9.2 需求: 类似直播的评论功能, 比如A房间下面显示A房间的评论 B房间下面显示B房间的评论.... 这个应该是个正常的需求吧.. 但是我现在发现一个问题, 就是 消息是发给所有在线链接者.. 就是相当于A下面的评论在 BCDEF 都能看到.. 这就很蛋疼了... 不知道啥问题.. 求各位大哥大姐帮帮忙看看. 公司很急呀 代码如下: on('open', function ($ws, $request) { $fd = $request->fd; echo "client-{$fd} is connect\n"; //$ws->push($request->fd, "hello, welcome\n"); }); //监听WebSocket消
388 2022-07-19
编程技术问答社区
php - swoole mysql 数据库连接池
问 题 看到这篇文章 MySQL的连接池、异步、断线重连 请问有详细的说明吗? 最好有实例代码 解决方案 第一个地方是rango的博客里,有一篇是连接池的博客. http://rango.swoole.com/archives/288 第二个地方是github中,swoole-src,git clone下来,里面有个examples文件夹,其中有. https://github.com/swoole/swoole-src/tree/master/examples
318 2022-07-19
编程技术问答社区
swoole的websocket 部分怎么通知全部在线用户?求助
问 题 下面是我遍历发送消息,总觉得这样做是不对的,但是看手册又找不到发送所有成员的函数,求助 $server = new swoole_websocket_server("0.0.0.0", 9502); $server->set(array( //'worker_num' => 4, 'daemonize'=>1 )); $server->on('open', function (swoole_websocket_server $server, $request) { echo "server: handshake success with fd{$request->fd}\n"; $_SESSION['group'][$request->fd]=$request->fd; }); $server->on('message', function (swoole_websocket_server $server, $
778 2022-07-19
编程技术问答社区
swoole 有没有 类似 php-fpm的slow log 功能
问 题 我们用swoole 代替php-fpm 做为php的服务器, php-fpm 里面很好用的slow log 功能,我在 swoole没有找到 不知道有什么好的办法? 解决方案 没有,onRequest里你可以自己统计 代码执行的时长,然后记录日志。
174 2022-07-19
编程技术问答社区
php - 作为socket长连接服务器,Swoole如果要做到主动对已经连接过来的,用户uid=123的那个用户,推送一条消息应该怎么写?
问 题 额,这应该是菜鸟级别的问题,但是看了文档我还是无从下手。 解决方案 php的socket是资源类型: resource(4) of type (Socket),也就是每个socket句柄都一个样子。。 而Linux C socket fd是个int整数,每个都是不同数字。 原生php做不到“主动对已经连接过来的,用户uid=123的那个用户,推送一条消息”, 但借助Swoole利用linux C实现的socket,我们可以实现“主动对已经连接过来的,用户uid=123的那个用户,推送一条消息”。 这里我们可以用System V最简单的share memory来进程间共享数据IPC,维护一个用户id与其socket连接的映射表。 代码如下: set(array( 'worker_num' => 8,
420 2022-07-19
编程技术问答社区
nginx 反向代理 swoole的设置
问 题 nginx 反向代理 swoole 的设置问题 首先版本 php 7.1.0 swoole 2.0.5 nginx 1.10.2 按官网说明http://wiki.swoole.com/wiki/p...,设置nginx反向代理到 swoole, server { root /alidata/www/vweb/; server_name 域名; location / { #添加了这个也不行 #try_files $uri $uri/ /index.php?$query_string; #下面这几行是swoole官网设定 if (!-e $request_filename) { proxy_pass http://127.0.0.1:9501; } proxy_http_version 1.1;
1790 2022-07-19
编程技术问答社区
php - 最近在学习swoole,有几个菜鸟问题询问一下
、 问题一:为什么这里还分为Server端和client端?想要使用swoole功能前需要运行server文件吗? 这就是swoole拓展的特色? 问题二:swoole的应用场景::很多人都说swoole适合做聊天室,为啥?因为异步,多线程吗?(FPM是多进程单线程吧?) 问题三:到底什么程度可以入swoole的坑? 目前我属于能够熟练应用 LAMP/LNMP(常年在linux下开发,所以在linux下装拓展,开发什么的还算熟悉),nosql(memcached,redis,mangodb),数据结构+C有所了解的菜鸡。适合入坑吗? 问题四:swoole框架和swoole拓展之间有怎样的联系吗?
232 2022-07-19
编程技术问答社区
php - swoole workerman 如何选择?
问 题 同是作为高性能服务器软件,这两者似乎差不多,不知道如何选择 这个问题已被关闭,原因:无法获得确切结果的问题 解决方案 那就看着哪个顺眼用哪个
282 2022-07-19
编程技术问答社区
求教 PHP swoole扩展并发扫描 IP的65535个端口是否开启的思路
问 题 求教 PHP swoole扩展扫描 IP的65535个端口是否开启的思路 最近才了解swoole扩展,之前了解过pthreads扩展,但没有思路。 需要解决的问题: 1.10万IP 并发扫描是否存活(自己的解决使用ping 或fsockopen,nodejs,但效率太低或还是想使用PHP的环境) 2.扫描单个IP的65535个端口,查看端口是否开启。 需要得到的回复: 1.swoole能否解决上述需求,请提供一下思路,以及研究的关键点 解决方案 写个异步swoole_client,循环创建并连接到对方端口即可。
298 2022-07-19
编程技术问答社区
php - 使用swoole出现的一个奇怪问题 swReactorEpoll_set
问 题 ERROR swReactorEpoll_set(:191): reactor#0->set(fd=26|type=0|events=5) failed. Error: No such file or directory[2]. 请问为什么会出现这个问题? 解决方案 出现这个信息说明服务器正在向客户端连接发送数据时,客户端强行切断了连接,因此服务器会报出一个错误,但不影响程序运行。
810 2022-07-19
编程技术问答社区
php - 关于swoole为什么渲染内容需要ob_*系列
问 题 为什么使用PHP的扩展Swoole的时候,目前指的是swoole_http_server。 我从框架中返回内容,然后通过Swoole发还给浏览器前, 需要使用ob_*系列操作一趟,才可以把内容刷出呢!????!?! 求解,到底是什么情况下才需要用到ob_系列呢,之前也遇到过验证码突然要用ob_。 解决方案 swoole是作为CLI程序跑的,如果不用ob_*而直接echo的话会输出到STDOUT里面,而不会返回给浏览器。 ob_*系列函数可以把echo的内容缓存下来,然后获取到某个变量里面,这样通过HTTP就可以发送给浏览器了。 如果直接return一个字符串给swoole的话应该也是不需要使用ob_*的。但是某些PHPer会习惯写echo xxx,为了兼(jiao)容(guan)这些PHPer,所以干脆统一用ob_start...ob_get_contents这样的方式。
142 2022-07-19
编程技术问答社区
php - 现在swoole那个版本比较稳定
问 题 目前主要使用swoole_client, http_server 以及tcp类型的swoole_server,日后可能会用到websocket server, 所以来询问一下swoole哪个版本在哪个php版本下比较稳定 解决方案 http://wiki.swoole.com/wiki/p... 建议使用的版本 稳定版:swoole-1.9.4-stable 预览版:swoole-2.0.5-stable 1.9.x分支已进入特性锁定期,不再开发新功能,仅修复BUG
200 2022-07-19
编程技术问答社区
php - swoole 扩展和 swoole 框架有什么区别?
问 题 swoole 的扩展和 swoole 这个 php 框架有什么区别 解决方案 swoole 扩展就是一个用C 写的php 扩展。他们可以干很多事,特别是对socket 的封装。 swoole_framework 是基于swoole 扩展写的一个 PHP WEB 框架。
278 2022-07-19
编程技术问答社区
php - swoole 里如何判断所有的异步回调已经完成?
问 题 Q1 connect($conf, function ($db, $r) use (&$result) { $result[] = 1; }); (new swoole_mysql)->connect($conf, function ($db, $r) use (&$result) { $result[] = 2; }); 如何判断上面两个 asyncIO 已经全部执行结束了,以便于我输出 $result ? Q2 connect($conf, function($db, $r) use (&a) { $a = 2; }); while ($a != 2) continue; echo $a; 以上这段代码有什么错误吗? 为什么 echo $a 永远不会执
142 2022-07-17
编程技术问答社区
php - swoole编写的websocket服务端如何对某一客户端做限流处?
问 题 比如说某一个客户端连上我的websocket服务端之后一直给我发送垃圾信息ddos我,我想设置成那个客户端十秒钟之内只能给websocket服务端发送一次消息,如何做?这个是在swoole编写的服务端脚本中用代码来实现还是在其他层面来防范? 解决方案 以前根据memcache的原子特性做过类似的功能 $microtime = microtime(true); //10微秒以内发送2次就报错,最小精确到10微秒,可以把间隔调大,比如调到100微秒,就改成$microtime = substr($microtime,0,-2); $microtime = substr($microtime,0,-1); $key = "safe_{$microtime}"; $memcached = new Memcached; $memcached->addServer( "127.0.0.1","11211",1 ); if (!$memcached->add($key
402 2022-07-17
编程技术问答社区