目前的做法是 在项目1中启动后,在项目2中发送消息。
两个项目在同一个服务器,并且都 composer require workerman/workerman,
出现的问题为:项目1中声明的startPort,和项目2 中local_port不一样。
项目文件夹1
new Register('text://0.0.0.0:1238');
$Gateway = new Gateway('tcp://0.0.0.0:8082');
$Gateway->lanIp = '127.0.0.1';
$Gateway->startPort = 10000; //startPort 为10000开始
$worker = new BusinessWorker();
$worker->eventHandler = 'App\Http\Controllers\WebSocket\WebSocketController';
$worker->name = 'BusinessWorker';
$worker->count = 3;
$worker->registerAddress = '127.0.0.1:1238';
可以正常启动
项目文件夹2
发送消息
Gateway::$registerAddress = '127.0.0.1:1238';
startPort 为20000开始
报错 stream_socket_client(): unable to connect to tcp://127.0.0.1:20001 (Connection refused)
附上 php artisan workman connections
看下是调用哪个接口报错,可能是client_id传错了,client_id里包含了端口信息
感谢大佬 。
我两个项目里,起的名字一样 “work:socket”,都执行过同样的 php artisan work:socket start ,但是没有同时启动过。
启动之后
Workerman[worker:socket] start in DEBUG mode ,请问这个跟同样的命令名称有关吗?
没用过 artisan ,这不太清楚