日本黄色一级经典视频|伊人久久精品视频|亚洲黄色色周成人视频九九九|av免费网址黄色小短片|黄色Av无码亚洲成年人|亚洲1区2区3区无码|真人黄片免费观看|无码一级小说欧美日免费三级|日韩中文字幕91在线看|精品久久久无码中文字幕边打电话

當(dāng)前位置:首頁(yè) > 芯聞號(hào) > 充電吧
[導(dǎo)讀]由于服務(wù)器和HTML界面在同一個(gè)進(jìn)程,因此傳輸速度很快,不用考慮傳輸速度問(wèn)題。 并且C++端放在本地可以做本地App應(yīng)用,放在服務(wù)器,可以做網(wǎng)頁(yè)應(yīng)用。原理是 ?界面中 new Qt HTTP服務(wù)器,

由于服務(wù)器和HTML界面在同一個(gè)進(jìn)程,因此傳輸速度很快,不用考慮傳輸速度問(wèn)題。
并且C++端放在本地可以做本地App應(yīng)用,放在服務(wù)器,可以做網(wǎng)頁(yè)應(yīng)用。

原理是 ?界面中 new Qt HTTP服務(wù)器,
HTML端用JavaScript XMLHttpRequest發(fā)送請(qǐng)求給C++(可包含參數(shù) 參數(shù)中使用字符串用來(lái)表示,函數(shù)可以用HTTP 子域開(kāi)表示,),C++根據(jù)傳入的字符串,調(diào)用Qt元函數(shù),或者封裝入Qt quick中,調(diào)用eval.推薦用Qt quick封裝,因?yàn)楦奖?他里面封裝好了ios 和 android的Webview
返回值由C++ HTTP服務(wù)器端返回。

因?yàn)橹苯邮荙t和javasc交互,因此跳過(guò)了中間層
傳統(tǒng):
C++ ? —> ? ?JAVA(objecttive C) ? ?—> ? JavaScript
C++ ? <— ? ?JAVA(objecttive C) ? ?<—- ?JavaScript
現(xiàn)在:C++ ?

DEMO:

int??testdata=0;
void?Helloworldcontroller3::service(HttpRequest?&request,?HttpResponse?&response)?{

????//允許跨域
??????response.setHeader("Access-Control-Allow-Origin",?"*");




????QByteArray?path=request.getPath();
????????qDebug("RequestMapper:?path=%s",path.data());
?????????if?(path=="/test")?{
????????????//獲取參數(shù)
????????????QByteArray?m_id=request.getParameter("p1");

????????????QString??s;
????????????s.sprintf("data?%d",m_id.toInt());
????????????response.setStatus(200,"ok");??//返回成功代碼200??已經(jīng)代碼字符串
????????????response.write(s.toStdString().c_str(),true);//寫入?yún)?shù)
????????????testdata++;

????????}
????????else?{
????????????response.setStatus(404,"oo!Not?found");
????????????QString??s?=QString::fromLocal8Bit("未知的連接哦");
????????????QByteArray?s2(s.toStdString().c_str());
????????????response.write(s2,true);
????????}

????????qDebug("RequestMapper:?finished?request");
}
var?xhr;
function???異步CALL_Test(arg1)
{
????if?(!xhr)
????{
????????xhr?=?new?XMLHttpRequest();
????}

????if?(xhr)?{
????????//寫入?yún)?shù)
????????xhr.open('POST',?"http://localhost:8080/test?p1="+arg1,?true);//異步調(diào)用?發(fā)送給Qt端
????????xhr.onreadystatechange?=?function(evtXHR){
????????????if?(xhr.readyState?==?4)?{
????????????????if?(xhr.status?==?200)?{//如果發(fā)送成功??

????????????????????var?response?=?xhr.responseText;//獲取Qt返回值??作為新建列表的標(biāo)題
????????????????????alert(response)
????????????????????$("#list1").append('Inbox'+response+'');
????????????????????$("#list1").listview("refresh");
????????????????}?else?{
????????????????????alert(??"不允許跨域請(qǐng)求。"?+?xhr.status+xhr.responseText);
????????????????}
????????????}
????????};
????????xhr.send(null);
????}?else?{
????????alert("Sorry!程序出錯(cuò)!Code?Postion:XML?ERROR:1")
????}
???//?alert("end");
}?
????$(function(){

???????$("button").click(function(){

???????????異步CALL_Test(123);

??});


});
本站聲明: 本文章由作者或相關(guān)機(jī)構(gòu)授權(quán)發(fā)布,目的在于傳遞更多信息,并不代表本站贊同其觀點(diǎn),本站亦不保證或承諾內(nèi)容真實(shí)性等。需要轉(zhuǎn)載請(qǐng)聯(lián)系該專欄作者,如若文章內(nèi)容侵犯您的權(quán)益,請(qǐng)及時(shí)聯(lián)系本站刪除( 郵箱:macysun@21ic.com )。
換一批
延伸閱讀
關(guān)閉