項(xiàng)目中用到的是AsyncTcpConnection,主要是是為了獲取異步返回的數(shù)據(jù)。
用戶(hù)向服務(wù)器發(fā)送指令,由AsyncTcpConnection返回同步數(shù)據(jù)(指令是否成功發(fā)送)和異步數(shù)據(jù)(指令成功發(fā)送后返回的數(shù)據(jù))。
比如說(shuō):用戶(hù)向服務(wù)器發(fā)送尋車(chē)指令,返回的同步數(shù)據(jù)是指令發(fā)送成功,異步數(shù)據(jù)是GPS數(shù)據(jù),主要獲取的就是異步返回的數(shù)據(jù)。
現(xiàn)在在dos中,可以收發(fā)數(shù)據(jù),但指令是由用戶(hù)發(fā)送,所以要寫(xiě)個(gè)接口獲取用戶(hù)發(fā)送的指令,然后調(diào)用workerman獲取指令返回的數(shù)據(jù)。
因?yàn)閣orkerman只能用命令行運(yùn)行,即便接口調(diào)用了workerman,也是顯示超時(shí),而且程序并沒(méi)有執(zhí)行。所以workerman是不能供外部調(diào)用了是嗎?
啟動(dòng)http服務(wù),或者web走curl請(qǐng)求workerman
我把一個(gè)workerman和我其他的代碼封裝成了一個(gè)類(lèi),然后在一個(gè)文件中實(shí)例化這個(gè)類(lèi),想用這個(gè)文件,作為接口供別人調(diào)用,要怎么做?
當(dāng)成兩個(gè)框架,workerman啟動(dòng)http服務(wù),另一個(gè)webServer使用curl訪問(wèn),類(lèi)似于手機(jī)短信接口,而不是傳統(tǒng)的sdk類(lèi)庫(kù)!
@1399:我現(xiàn)在的問(wèn)題是,在dos中執(zhí)行這個(gè)文件,workerman可以正常運(yùn)行,但是在瀏覽器中訪問(wèn)這個(gè)文件,就超時(shí)了。
@workerofmine 本人小白一枚,請(qǐng)問(wèn)下大神,怎么使用AsyncTcpConnection調(diào)用的,能不能講解下。我也遇到了同樣的問(wèn)題,也想要接口直接能發(fā)送socket請(qǐng)求指令到服務(wù)器,服務(wù)器接收再返回。
啟動(dòng)兩個(gè)服務(wù)
服務(wù)1:
$webserver = new WebServer('http://0.0.0.0:80);
配置路由 或者或者啟動(dòng)http服務(wù)提供接口
業(yè)務(wù)
$Async = new AsyncTcpConnection('http://www.xxx.com');//根據(jù)其實(shí)需求使用不同的協(xié)議
服務(wù)2正常啟動(dòng)各種服務(wù)等待Async連接
方案二
直接啟動(dòng)http服務(wù),使用curl來(lái)訪問(wèn),至于在瀏覽器運(yùn)行,可以使用其他框架來(lái)和服務(wù)通信
方案二是不通過(guò)workerman來(lái)獲取異步數(shù)據(jù)是嗎?
公司的要求是通過(guò)socket來(lái)獲取數(shù)據(jù)。
請(qǐng)問(wèn),第一種方式的webserver ,是怎么用的?