每个Worker是一个进程启动的吧,所以不支持一个start_xxxx.php文件中放多个worker?

昨天看了下Worker的源码,发现并不支持一个start_xxx.php文件中存在多个Worker,为什么这样呢?是因为一个Worker就是一个进程吗?因为会跑他的事件循环,如果多个worker,就会阻塞另一个worker的运行?因为$globalEvent是static全局的,所以只能在一个进程中使用!?   第二,$globalEvent是在每个Worker子进程中独立的吗?如一个Worker->count...

zhouciming 发表与 2018-12-26 2304 浏览 1 回答
worker的源码里是不是没有消息队列的?

大概看了下worker的源码,感觉Worker似乎并没有消息队列,而是只有消息发送/接收缓冲,大概是1024*1024bye大小,如果这个缓冲满了就处理不了接下来的发送或接收了吧!所以想确认下,是不是没有消息队列的?自己不是100%确定,所以来求证下!...

zhouciming 发表与 2018-12-26 2241 浏览 1 回答
gatewayworker设置的worker数量太多,导致require_once文件失败

一个基于gatewayworker框架的服务器程序,我设置了5个gate, 10个worker,然后一个含5个worker的客户端,每个worker发起1000个连接到服务器,发现服务器报require_once文件失败,是从autoload.php调用起来的,竟然 会出现这种事!   这个相当于多进程同时require_once 某个共享文件造成的,这个有办法解决吗,谁叫php是解释型语言呢,在用到的时候才会req...

zhouciming 发表与 2018-12-11 2451 浏览 1 回答
gatewayworker多客户端并发处理太弱了吗?

gatewayworker做的登录服, 1个gate,5个worker;另有一客户端,开了10个worker,每个worker启动时向登录服发起1000个tcp连接,发现建立连接时出现unable to connect to tcp://192.168.20.166:18310 (Unknown error)   我的测试模型有什么问题吗?出现这个问题,我感觉应该是gate在处理客户端连接时响应不过来造成的,有什么好...

zhouciming 发表与 2018-12-07 5523 浏览 1 回答
gatewayworker作游戏服务器的话, reload似乎没啥用!!

一般情况下,游戏服务器都会需要处理玩家数据,所以内存里必然保留了一些数据的,如果用reload去让修改的代码生效,因为会先onWorkerStop,再调用onWorkerStart,虽然客户端与gate间的连接并不会断开,但是处理业务的worker被stop并start后,子进程中的内存数据难道还会存在吗?   如果已经不存在了,那这个reload似乎就没有用了,跟重启服务器有何区别!请大佬解释下,这是本人最近的困惑...

zhouciming 发表与 2018-11-30 2810 浏览 2 回答
如何才能让所有businessworker都收到一个Server的消息并处理!?

一个Server连接了gatewayworker中的gate, 发了个消息,如何才能让所有businessworker都收到这个消息并处理呢?   根据框架,应该只有最初选定的worker才会收到这个消息并处理,可是我现在的需求是想让所有worker都能处理,因为并不清楚最初客户端连接被哪个worker处理了(我想让那个worker关闭这个客户端连接)!...

zhouciming 发表与 2018-11-27 2318 浏览 2 回答
workerman mysql update求教

想update某条记录中的某几个字段值,如col1, col2, 是想给他们+1, +2, 不知道要怎么写才美观呢?cols()  我用这种方式试了下是错误的!!!提示:General error: 1366 Incorrect integer value   难道非要读取出原记录里相关字段的值,再加上去吗?我知道用原生的语句也可以,但还是想来问下,我如果要用上面那种写法的话,要怎么写呢?谢谢大家!...

zhouciming 发表与 2018-11-01 2040 浏览 1 回答
gateway框架中的Events中onMessage()中如何获取客户端ip?

我大概找了下,发现Context::$client_ip可以取到客户端ip,但因为这个$client_ip是static成员,所以我不敢用!   这个框架能保证在处理某个client_id的消息时Context::$client_ip一定是正确的吗?如果是,难道是在处理之前,先更新这个变量的值了?   请高人指点下!谢谢!...

zhouciming 发表与 2018-10-25 2574 浏览 1 回答
gatewayworker框架中gate被kill -9杀掉后,会自动重新建立进程?

用gateway框架启动了gate, register, worker, 然后我在另一终端中kill -9那个gate进程,过会发现这个gateway进程又有了,这是什么?是框架检测了kill信号自动给起来的吗?...

zhouciming 发表与 2018-10-18 3007 浏览 1 回答
基于websocket的协议,服务端未完全启动时, client连接失败后调用reconnect无效!

服务端未完全启动时, client连接失败后调用reconnect后,虽然connect成功的,但是发送数据服务端并不能接收到,这是为什么?   在onClose中我应该怎么写才能保证接下来发送数据能成功呢?...

zhouciming 发表与 2018-10-16 3689 浏览 1 回答
think-orm框架如何同时连接多个mysql数据库?

使用workerman开发游戏服务器时,采用了think-orm框架,但是mysql数据库可能会有多个,这个要怎么配置和使用呢?   我最想要的是通过代码直接取用不同的连接(如赋值给2个变量)操作表,而不是通过切换数据库来实现,谢谢!...

zhouciming 发表与 2018-10-15 3538 浏览 1 回答
如何在websocket的基础上自定义协议?

这个框架提供的自定义协议非常好用,但应该是在tcp基础上的自定义协议吧!   我现在的实际应用场景是想在websocket基础上再添加自定义的二进制协议,所以在Protocols下自定义协议已经无效了,不知道有没有简便的方式实现我的这种需求呢?...

zhouciming 发表与 2018-10-12 4893 浏览 1 回答
自定义类继承自Worker,reload失败

用的是workerman框架,我自定义了一个Server类(继承自Worker), 但是运行起来后,onWorkerStart和onMessage都没问题,但是用php start.php reload,脚本就卡住了,后来一检查,发现似乎是php start.php start跑完后,有进程没跑完!因为当我按Ctrl+C停止进程后,能进入处理reload的地方了,所以不知道问题在哪里,能帮忙看下吗,感激不尽。 sta...

zhouciming 发表与 2018-10-11 2479 浏览 2 回答
workman如何写一个适合热更新的启动php文件

workman如何写一个适合热更新的启动php文件!! 想用php写一个手游服务端,借用workerman这个框架。而且有些逻辑经常需要改动的,所以要考虑热更新问题,因为是服务端,所以不能经常重启。求一个适合热更新的启动php文件!...

zhouciming 发表与 2015-11-10 7042 浏览 3 回答

zhouciming

1745
积分
0
获赞数
0
粉丝数
2015-11-10 加入
🔝