您当前的位置: 首页 > 慢生活 > 程序人生 网站首页程序人生
workerman实现Text文本协议
发布时间:2021-11-28 11:52:25编辑:雪饮阅读()
实例:
<?php
use Workerman\Worker;
use Workerman\Connection\TcpConnection;
require_once __DIR__ . '/vendor/autoload.php';
$global_uid = 0;
// 当客户端连上来时分配uid,并保存连接,并通知所有客户端
function handle_connection($connection)
{
global $text_worker, $global_uid;
// 为这个连接分配一个uid
$connection->uid = ++$global_uid;
}
// 当客户端发送消息过来时,转发给所有人
function handle_message(TcpConnection $connection, $data)
{
global $text_worker;
foreach($text_worker->connections as $conn)
{
$conn->send("user[{$connection->uid}] said: $data");
}
}
// 当客户端断开时,广播给所有客户端
function handle_close($connection)
{
global $text_worker;
foreach($text_worker->connections as $conn)
{
$conn->send("user[{$connection->uid}] logout");
}
}
// 创建一个文本协议的Worker监听2347接口
$text_worker = new Worker("text://0.0.0.0:2347");
// 只启动1个进程,这样方便客户端之间传输数据
$text_worker->count = 1;
$text_worker->onConnect = 'handle_connection';
$text_worker->onMessage = 'handle_message';
$text_worker->onClose = 'handle_close';
Worker::runAll();
实例部署:
[root@localhost workerman]# php -c /usr/local/php734/lib/php/php.ini start.php start
Workerman[start.php] start in DEBUG mode
----------------------------------------- WORKERMAN -----------------------------------------
Workerman version:4.0.22 PHP version:7.3.4
------------------------------------------ WORKERS ------------------------------------------
proto user worker listen processes status
tcp root none text://0.0.0.0:2347 1 [OK]
---------------------------------------------------------------------------------------------
Press Ctrl+C to stop. Start success.
实例测试:分别用三个会话进行消息发送测试
telnet1:
[root@localhost ~]# telnet 127.0.0.1 2347
Trying 127.0.0.1...
Connected to 127.0.0.1.
Escape character is '^]'.
hai
user[1] said: hai
nihao
user[1] said: nihao
user[2] said: wo bu hao
user[3] said: wo ye buhao
user[3] logout
telnet2:
[root@localhost ~]# telnet 127.0.0.1 2347
Trying 127.0.0.1...
Connected to 127.0.0.1.
Escape character is '^]'.
user[1] said: hai
user[1] said: nihao
wo bu hao
user[2] said: wo bu hao
user[3] said: wo ye buhao
user[3] logout
user[1] said:
telnet3:
[root@localhost ~]# telnet 127.0.0.1 2347
Trying 127.0.0.1...
Connected to 127.0.0.1.
Escape character is '^]'.
user[1] said: nihao
user[2] said: wo bu hao
wo ye buhao
user[3] said: wo ye buhao
^]
telnet> quit
Connection closed.
关键字词:workerman,Text,协议
相关文章
- workerman的debug和daemon方式区别及分别如何运行?
- workerman查看连接状态
- 为workerman安装支持更大并发数所需的event扩展
- workermanl的inux下运行环境检查
- workerman直接使用TCP传输数据
- workerman使用WebSocket协议对外提供服务
- workerman使用HTTP协议对外提供Web服务(简单实现apach
- 使用php7.3.4与composer安装workerman及composer指定p
- phpunit使用testdox的testdox-text与testdox-html参数
- 安卓从sdcard中加载ttf字体到textView及资产文件写入