我想咨詢下 業(yè)務(wù)處理完成后能不能通過網(wǎng)關(guān) 建立多個tcp將數(shù)據(jù)發(fā)送到指定的服務(wù)器 并接收返回信息
不知道怎么實(shí)現(xiàn)怎么寫
new AsyncTcpConnect
http://wtbis.cn/doc/workerman/async-tcp-connection/construct.html
你好 我想問下 在gatewayworkman 的業(yè)務(wù)服務(wù)器中使用AsyncTcpConnect 消息是 直接在業(yè)務(wù)服務(wù)器轉(zhuǎn)發(fā) 還是在網(wǎng)關(guān)轉(zhuǎn)發(fā)
A數(shù)據(jù)采集設(shè)備 B企業(yè)平臺 C國家平臺 要求 B企業(yè)采集的設(shè)備數(shù)據(jù) 要實(shí)時轉(zhuǎn)發(fā)到C國家平臺 國家平臺提交資料的時候有ip限制 比如1個 因?yàn)椴杉O(shè)備信息較多 B企業(yè)平臺中的業(yè)務(wù)服務(wù)器較多 處理完成業(yè)務(wù)后直接轉(zhuǎn)發(fā)到C國家平臺 因?yàn)閕p限制的原因可能就不合適了 轉(zhuǎn)發(fā)到C國家平臺后 還需要接收C國家平臺返回的確定信息 并更改B企業(yè)平臺中的數(shù)據(jù)庫 更改發(fā)送和接收標(biāo)識
<?php
require __DIR__ .'/vendor/autoload.php';
$workerman=new \Workerman\Worker();
$workerman->name='采集器B企業(yè)';
$workerman->onWorkerStart=function (){
//這里寫curl代碼,并且緩存到redis或者mysql
};
$pushGovPlatform=new \Workerman\Worker();
$pushGovPlatform->name='推送到GOV';
$workerman->onWorkerStart=function (){
//從redis讀取任務(wù)隊(duì)列
//curl 提交給國家平臺
//結(jié)果返回,修改數(shù)據(jù)庫
};
\Workerman\Worker::runAll();
如果需要更進(jìn)一步的疑問,請?jiān)诖嗽敿?xì)說明
你好 我使用的是 gatewayWorkman 推送到GOV的代碼 應(yīng)該寫在網(wǎng)關(guān)服務(wù)器是嗎?
$workerman->onWorkerStart=function (){
//從redis讀取任務(wù)隊(duì)列 是不是寫錯了
應(yīng)該 $pushGovPlatform->onWorkerStart=function (){
//從redis讀取任務(wù)隊(duì)列
這里細(xì)節(jié)上還有部分細(xì)節(jié)問題
1 一種設(shè)備類型要建立一個tcp 就是說要多個tcp
2 就是有可能實(shí)時添加一個新的類型 或者刪除禁用一個類型 對應(yīng)的tcp要關(guān)閉
$pushGovPlatform=new \Workerman\Worker();
$pushGovPlatform->name='推送到GOV';
$asyncTcps=[];
$pushGovPlatform->onWorkerStart=function (){
$list =[1,2,3]; //設(shè)備類型
$address='tcp://www.baidu.com:80';
global $asyncTcps;
foreach ($list as $key){
$connect=new AsyncTcpConnection($address);
$connect->id=$key;
$connect->onConnect=function (AsyncTcpConnection $con){
Monitor::onContent($con);
};
$connect->onMessage=function (AsyncTcpConnection $con){
Monitor::onMessage($con);
};
$connect->onClose=function (AsyncTcpConnection $con){
Monitor::onClose($con);
};
$connect->onError=function (AsyncTcpConnection $con){
Monitor::onError($con);
};
$connect->connect();
$asyncTcps[$key]=$connect;
}
//從redis讀取任務(wù)隊(duì)列
//判斷設(shè)備類型 選用正確的tcp連接
//curl 提交給國家平臺
//結(jié)果返回,修改數(shù)據(jù)庫()
};
動態(tài) 添加和刪除的時候直接處理 asyncTcps 對不對