php text,text协议

本文介绍了Workerman框架中的text协议,展示了如何定义协议格式、创建socket连接并使用telnet进行调试。通过实例演示了如何在PHP中实现数据包发送与接收,以及text协议在开发中的便利性。
摘要由CSDN通过智能技术生成

text协议

Workerman定义了一种叫做text的文本协议,协议格式为 数据包+换行符,即在每个数据包末尾加上一个换行符表示包的结束。

例如下面的buffer1和buffer2字符串符合text协议

// 文本加一个回车

$buffer1 = 'abcdefghijklmn

';

// 在php中双引号中的\n代表一个换行符,例如"\n"

$buffer2 = '{"type":"say", "content":"hello"}'."\n";

// 与服务端建立socket连接

$client = stream_socket_client('tcp://127.0.0.1:5678');

// 以text协议发送buffer1数据

fwrite($client, $buffer1);

// 以text协议发送buffer2数据

fwrite($client, $buffer2);

text协议非常简单易用,如果开发者需要一个属于自己的协议,例如与手机App传输数据或者与硬件通讯等等,可以考虑使用text协议,开发调试都非常方便。

text协议调试

text协议可以使用telnet客户端调试,例如下面的例子。

test.php

require_once __DIR__ . '/Workerman/Autoloader.php';

use Workerman\Worker;

$text_worker = new Worker("text://0.0.0.0:5678");

$text_worker->onMessage = function($connection, $data){

var_dump($data);

$connection->send("hello world");

};

Worker::runAll();

执行php test.php start显示如下

php test.php start

Workerman[test.php] start in DEBUG mode

----------------------- WORKERMAN -----------------------------

Workerman version:3.2.7 PHP version:5.4.37

------------------------ WORKERS -------------------------------

user worker listen processes status

root none myTextProtocol://0.0.0.0:5678 1 [OK]

----------------------------------------------------------------

Press Ctrl-C to quit. Start success.

重新打开一个终端,利用telnet测试(建议用linux系统的telnet)

假设是本机测试,

终端执行 telnet 127.0.0.1 5678

然后输入 hi回车

会接收到数据hello world\n

telnet 127.0.0.1 5678

Trying 127.0.0.1...

Connected to 127.0.0.1.

Escape character is '^]'.

hi

hello world

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值