昨天看了下Worker的源码,发现并不支持一个start_xxx.php文件中存在多个Worker,为什么这样呢?是因为一个Worker就是一个进程吗?因为会跑他的事件循环,如果多个worker,就会阻塞另一个worker的运行?因为$globalEvent是static全局的,所以只能在一个进程中使用!? 第二,$globalEvent是在每个Worker子进程中独立的吗?如一个Worker->count...
大概看了下worker的源码,感觉Worker似乎并没有消息队列,而是只有消息发送/接收缓冲,大概是1024*1024bye大小,如果这个缓冲满了就处理不了接下来的发送或接收了吧!所以想确认下,是不是没有消息队列的?自己不是100%确定,所以来求证下!...
一个基于gatewayworker框架的服务器程序,我设置了5个gate, 10个worker,然后一个含5个worker的客户端,每个worker发起1000个连接到服务器,发现服务器报require_once文件失败,是从autoload.php调用起来的,竟然 会出现这种事! 这个相当于多进程同时require_once 某个共享文件造成的,这个有办法解决吗,谁叫php是解释型语言呢,在用到的时候才会req...
gatewayworker做的登录服, 1个gate,5个worker;另有一客户端,开了10个worker,每个worker启动时向登录服发起1000个tcp连接,发现建立连接时出现unable to connect to tcp://192.168.20.166:18310 (Unknown error) 我的测试模型有什么问题吗?出现这个问题,我感觉应该是gate在处理客户端连接时响应不过来造成的,有什么好...
一般情况下,游戏服务器都会需要处理玩家数据,所以内存里必然保留了一些数据的,如果用reload去让修改的代码生效,因为会先onWorkerStop,再调用onWorkerStart,虽然客户端与gate间的连接并不会断开,但是处理业务的worker被stop并start后,子进程中的内存数据难道还会存在吗? 如果已经不存在了,那这个reload似乎就没有用了,跟重启服务器有何区别!请大佬解释下,这是本人最近的困惑...
一个Server连接了gatewayworker中的gate, 发了个消息,如何才能让所有businessworker都收到这个消息并处理呢? 根据框架,应该只有最初选定的worker才会收到这个消息并处理,可是我现在的需求是想让所有worker都能处理,因为并不清楚最初客户端连接被哪个worker处理了(我想让那个worker关闭这个客户端连接)!...
想update某条记录中的某几个字段值,如col1, col2, 是想给他们+1, +2, 不知道要怎么写才美观呢?cols() 我用这种方式试了下是错误的!!!提示:General error: 1366 Incorrect integer value 难道非要读取出原记录里相关字段的值,再加上去吗?我知道用原生的语句也可以,但还是想来问下,我如果要用上面那种写法的话,要怎么写呢?谢谢大家!...
我大概找了下,发现Context::$client_ip可以取到客户端ip,但因为这个$client_ip是static成员,所以我不敢用! 这个框架能保证在处理某个client_id的消息时Context::$client_ip一定是正确的吗?如果是,难道是在处理之前,先更新这个变量的值了? 请高人指点下!谢谢!...
用gateway框架启动了gate, register, worker, 然后我在另一终端中kill -9那个gate进程,过会发现这个gateway进程又有了,这是什么?是框架检测了kill信号自动给起来的吗?...
服务端未完全启动时, client连接失败后调用reconnect后,虽然connect成功的,但是发送数据服务端并不能接收到,这是为什么? 在onClose中我应该怎么写才能保证接下来发送数据能成功呢?...
使用workerman开发游戏服务器时,采用了think-orm框架,但是mysql数据库可能会有多个,这个要怎么配置和使用呢? 我最想要的是通过代码直接取用不同的连接(如赋值给2个变量)操作表,而不是通过切换数据库来实现,谢谢!...
这个框架提供的自定义协议非常好用,但应该是在tcp基础上的自定义协议吧! 我现在的实际应用场景是想在websocket基础上再添加自定义的二进制协议,所以在Protocols下自定义协议已经无效了,不知道有没有简便的方式实现我的这种需求呢?...
用的是workerman框架,我自定义了一个Server类(继承自Worker), 但是运行起来后,onWorkerStart和onMessage都没问题,但是用php start.php reload,脚本就卡住了,后来一检查,发现似乎是php start.php start跑完后,有进程没跑完!因为当我按Ctrl+C停止进程后,能进入处理reload的地方了,所以不知道问题在哪里,能帮忙看下吗,感激不尽。 sta...
workman如何写一个适合热更新的启动php文件!! 想用php写一个手游服务端,借用workerman这个框架。而且有些逻辑经常需要改动的,所以要考虑热更新问题,因为是服务端,所以不能经常重启。求一个适合热更新的启动php文件!...