您当前的位置: 首页 > 慢生活 > 程序人生 网站首页程序人生
workerman单入口多端口接收tcp消息
发布时间:2021-11-29 21:39:24编辑:雪饮阅读()
test.php一键端:
<?php
use Workerman\Connection\TcpConnection;
use Workerman\Worker;
require_once __DIR__ . '/vendor/autoload.php';
// worker实例1有4个进程,进程id编号将分别为0、1、2、3
$worker1 = new Worker('tcp://0.0.0.0:8585');
// 设置启动4个进程
$worker1->count = 4;
// 每个进程启动后打印当前进程id编号即 $worker1->id
$worker1->onWorkerStart = function($worker1)
{
echo "worker1->id={$worker1->id}\n";
$worker1->onMessage=function(TcpConnection $connection, $data){
var_dump("worker1 receive message:\r\n");
var_dump($data);
// 向客户端发送hello $data
$connection->send('worker1 say:hello ' . $data);
};
};
// worker实例2有两个进程,进程id编号将分别为0、1
$worker2 = new Worker('tcp://0.0.0.0:8686');
// 设置启动2个进程
$worker2->count = 2;
// 每个进程启动后打印当前进程id编号即 $worker2->id
$worker2->onWorkerStart = function($worker2)
{
echo "worker2->id={$worker2->id}\n";
$worker2->onMessage=function(TcpConnection $connection, $data){
var_dump("worker2 receive message:\r\n");
var_dump($data);
// 向客户端发送hello $data
$connection->send('worker2 say:hello ' . $data);
};
};
// 运行worker
Worker::runAll();
?>
测试:
服务端:
[root@izj6c2jeancylo0ppo4vz5z workerman]# php test.php start
Workerman[test.php] start in DEBUG mode
---------------------------------------- WORKERMAN -----------------------------------------
Workerman version:4.0.22 PHP version:7.0.33
----------------------------------------- WORKERS ------------------------------------------
proto user worker listen processes status
tcp root none tcp://0.0.0.0:8585 4 [OK]
tcp root none tcp://0.0.0.0:8686 2 [OK]
--------------------------------------------------------------------------------------------
Press Ctrl+C to stop. Start success.
worker2->id=1
worker1->id=1
worker1->id=2
worker1->id=3
worker2->id=0
worker1->id=0
string(26) "worker1 receive message:
"
string(10) "hai 8585
"
string(26) "worker2 receive message:
"
string(10) "hai 8686
"
8585客户端:
[root@izj6c2jeancylo0ppo4vz5z ~]# telnet 127.0.0.1 8585
Trying 127.0.0.1...
Connected to 127.0.0.1.
Escape character is '^]'.
hai 8585
worker1 say:hello hai 8585
8686客户端:
[root@izj6c2jeancylo0ppo4vz5z ~]# telnet 127.0.0.1 8686
Trying 127.0.0.1...
Connected to 127.0.0.1.
Escape character is '^]'.
hai 8686
worker2 say:hello hai 8686
关键字词:workerman,tcp,单入口,多端口