环境: Workerman3.1.5 + PHP5.3.3 Gateway_10 + BusinessWorker_10 背景: 应用场景比较简单:作为一个APP聊天室的后端。 接收到消息后,群发给同一个聊天室的所有在线用户;同时把消息保存到数据库。 问题: 6个用户在同一个聊天室中在线聊天:每人发送数字从1到9,间隔大概在两秒左右。 就这么一个简单的场景中,竟然发现有用户消息被丢失的情况(其他用户都没有收到,数据库...
我想做一个不依托于workerman的情况下做一个定时器,我的需求是这样: 我创建一个房间,在创建房间的1小时候后,删除这个房间,在依托workerman的情况下我是会做,因为workerman的服务只需要跑起来,调用timer方法就可以了,但我如果是不依赖workerman的业务是如何定时执行的呢,是要用到进程吗?还是其他,求解答...
在chat程序中,addClientToRoom有一个// 获取所有所有房间的实际在线客户端列表,以便将存储中不在线用户删除 $all_online_client_id = Gateway::getOnlineStatus(); 这句话的调用,不知道为何这么做? 难道心跳消息检测失败,服务器不会抛出onClose事件? 如果这句话在每次新用户加入聊天时调用,性能实在有些太差了,并且获取时也没有room_id参数,获取...
第一次接触,看手册里都是Linux下的,想请教一下,在win7下该怎么操作呢?是应该使用workerman-for-window的吧~ 环境变量也设置了(PATH -> D:\php;),然后该怎么建项目?怎么运行呢?...
Provides: php-sysvmsg, php-sysvmsg%{?_isa}, hhvm(sysvmsg), hhvm(sysvmsg)%{?_isa} sysvmsg确认已经安装 运行 php start.php start之后报错如下 Warning: Unable to receive message: No message of desired type in ***/Applications...
接触Workerman2天啦,觉得很好,以前不晓得,百度websocket偶然看到的。从学习PHP的第一天开始就很想把产品都成免刷新的,觉得很酷。用过TP和CI做项目,看了ajax的方式总感觉哪里不爽,嘿嘿。现在找到了,刚开始看一头雾水,现在结合TP做出来了些Dome,有点感觉啦,觉得棒棒哒,开发起来还是比较容易上手的,以后可以脱离PHP WEB框架,直接使用原生PHP在Workerman上面做项目了。我要给phpe...
task worker的代码: <?php use Workerman\Worker; require_once './Workerman/Autoloader.php'; // task worker,使用Text协议 $task_worker = new Worker('Text://0.0.0.0:12345'); // task进程数可以根据需要多开一些 ...
一,2.x的client_id是不是等同于3.x版本的$connection->id 二,如何判断客户端是否在线。2.x 的 Gateway::isOnline 在 3.x如何使用 三,如何发送给指定客户端。2.x 的 Gateway::sendToCurrentClient 在 3.x如何使用...
一个线下枪战游戏,游戏中会向我的服务器发送TCP数据。每打一枪,就会向我发送一条数据,如果100人同时游戏,我想数据会很多,但是每一条数据我都会入库,战斗结束后,还会有每个人的数据统计,我想问下这个入库的时机,是直接入库,还是前面加一层memcached或者redis?...
主页demo 聊天室,如果在代码中对某个用户的发言做延时处理,例如: 在文件Applications\Chat\Event.php 的100行位置添加如下代码: if($client_name=='3333') { sleep(10); } 即用户3333的发言会延时10s在处理。 这个时候发现,用户3333发言后,其它用户立即发言,其它用户的发言会被阻塞,这个怎么解决???...
我的网站是https协议,要求websocket是wss协议,所以请问我们的框架是否支持wss?...