使用WorkerMan时,如何获取原始包数据?
后端代码:
<?php
$worker = new Worker('tcp://0.0.0.0:12000');
$worker->onMessage = function ($connection, $message) {
var_dump($message);
// 输出Vv29705370U{"cmd":"cmd\_client\_query\_room\_req","node\_id":3149840,"third\_party\_id":2772311495771}
}
实际客服端发送的是二进制数据:
56760000 00000000 00000000 00323937 30353337 30000000 00000000 00550000 007b2263 6d64223a 22636d64 5f636c69 656e745f 71756572 795f726f 6f6d5f72 6571222c 226e6f64 655f6964 223a3331 34393834 302c2274 68697264 5f706172 74795f69 64223a32 37373233 31313439 35373731 7d00
这是一个特定格式的二进制,不同位数和长度需要按规则解析,但是 worker 获取到的 $message 是把 00 按空字符解析后的字符串,因此无法再按规则解析。请问如何才能获取到最原始的数据呢?
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(1)
$message = bin2hex($message);