版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/qq_24364529/article/details/82625380
这是我前几天项目遇到的问题,以后也可能用不到了吧,还是记一下。
问题:有设备若干,使用tcp协议和服务器连接,设备发来数据后,服务器进行相应处理,然后把处理后的数据返回给客户端。
解决方法:我准备使用GatewayWorker、tp,让客户端(设备)和GatewayWorker进行tcp通讯,GatewayWorker接收到客户端的消息后,php curl方式发送json数据给tp处理,返回的数据通过Gateway发给客户端。由于没有真正的验证方法的可行性,这里只是单纯的做一个记录而已。
异步处理代码(网上搜的):
<?php
$arr = array(
'subject'=>'课程',
'loginName'=>'Durriya',
'password'=>'123'
);
//json也可以
$data_string = json_encode($arr);
//普通数组也行
//$data_string = $arr;
echo $data_string;
//echo '<br>';
//curl验证成功
$ch = curl_init("http://test.api.com/");
curl_setopt($ch, CURLOPT_CUSTOMREQUEST, "POST");
curl_setopt($ch, CURLOPT_POSTFIELDS,$data_string);
curl_setopt($ch, CURLOPT_RETURNTRANSFER,true);
curl_setopt($ch, CURLOPT_HTTPHEADER, array(
'Content-Type: application/json',
'Content-Length: ' . strlen($data_string)
));
$result = curl_exec($ch);
if (curl_errno($ch)) {
print curl_error($ch);
}
curl_close($ch);
echo $result;