项目写在Linux版本下,按照教程转到window下运行、gatewayWorker,发下onMessage接受不了信息,用webSocket能够连上,也能接受gateway的心跳信息,就是gateway端不能接受web的信息,
php start_register.php start_gateway.php start_businessworker.php start_tcp.php 启动后提示
----------------------- WORKERMAN -----------------------------
Workerman version:3.2.5 PHP version:5.4.16
------------------------ WORKERS -------------------------------
worker listen processes status
Register text://0.0.0.0:1238 1
WebsocketGateway Websocket://0.0.0.0:1129 1
YourAppBusinessWorker none 1
TcpGateway tcp://0.0.0.0:8282 1
----------------------------------------------------------------
Press Ctrl-C to quit. Start success.
Waring: Event::onMessage is not callable
这个是因为workerman版本和GatewayWorker版本不一致导致的。
把GatewayWorker和Workerman(win)都更新到最新就好了
很遗憾的告诉楼主,其实作者的回复是错的。。。。
正确的修改方式:
找到yourProj下的start_businessworker.php
然后
设置$worker->eventHandler = 'Event'; 是错误做法,因为会和Event扩展冲突,会导致Events::onMessage is not callable。
哈哈 我是来看二楼的
题主的问题是由于题主的linux环境和windows环境版本不一致导致。这个问题恰逢gatewayWorker的2.0.4版本中将Event.php改成了Events.php,如果两个环境不一致会导致报Event::onMessage is not callable。所以让其全部更新到最新版本问题解决。不过此贴是2016年的很老的帖子,已经不适用于目前情况。
嗯嗯 理解的