我想到的是 掃碼跳轉(zhuǎn)連接到相應(yīng)的頁(yè)面然后提交車牌,把數(shù)據(jù)發(fā)送到后臺(tái),通過(guò)stream_socket_clien() 發(fā)送到對(duì)應(yīng)的正在連接車牌的客戶端,然后客戶端返回相應(yīng)的數(shù)據(jù),可是客戶端返回的數(shù)據(jù)是在它自己連接的進(jìn)程上,我如何去開發(fā)比較好呢,他們說(shuō)雙向通訊來(lái)搞,可是沒(méi)有思路呀
結(jié)合你另一帖一起合并回復(fù)下,參考思路:
1、gatewayclient如何使用? 詳見手冊(cè): https://github.com/walkor/GatewayClient
2、你這個(gè)案例涉及雙向通訊,我認(rèn)為用GatewayWorker框架就很適合,比如可以仿 start_gateway.php 新開一個(gè)專用的 proxy worker:$gateway = new Gateway("text://0.0.0.0:9999");
$gateway->name = 'proxyWorker';
$gateway->lanip = '內(nèi)網(wǎng)IP';
$gateway->startPort = '最好和之前的gateway內(nèi)部端口區(qū)分開';
.............3、掃描車牌后推送消息到特定的proxy worker 即可,所有的業(yè)務(wù)邏輯圍繞Events.php擴(kuò)展實(shí)現(xiàn)。
4、其中一個(gè)業(yè)務(wù)細(xì)節(jié)主要就是處理 $client_id 與? 車設(shè)備ID的對(duì)應(yīng)關(guān)系。
5、另 GatewayClient 并不適合你這個(gè)場(chǎng)景,因?yàn)镚atewayClient只能單向推送消息。
現(xiàn)在是車牌識(shí)別上傳的系統(tǒng)已經(jīng)有了,是用workerman的tcp協(xié)議與廠家的車牌識(shí)別系統(tǒng)(客戶端)連接上了,比如現(xiàn)在是掃碼進(jìn)入到網(wǎng)頁(yè),psot提交車牌后,下發(fā)車牌號(hào)碼到車牌識(shí)別系統(tǒng)(客戶端)->客戶端返回相應(yīng)的價(jià)格,可是客戶端與自己下發(fā)的數(shù)據(jù)不是一個(gè)進(jìn)程上,車牌客戶端進(jìn)來(lái)我存的uid是車場(chǎng)id,那從頁(yè)面訪問(wèn)workerman服務(wù)器存什么id好呢
@5030: 問(wèn)題描述總是感覺(jué)缺點(diǎn)什么,既然選擇是使用workerman作為通信框架,【客戶端與自己下發(fā)的數(shù)據(jù)不是一個(gè)進(jìn)程上?是兩個(gè)客戶端要通訊嗎?】,如果客戶端彼此之間需要通信,那就得自己定制進(jìn)程模型【gatewayworker則是現(xiàn)成的無(wú)需關(guān)心】,因?yàn)樯婕暗竭M(jìn)程間的通訊,這個(gè)手段有很多:使用官方 globaldata組件、redis等等,至于業(yè)務(wù)自己梳理吧。