你是這樣的開發(fā)者嗎?想象一下,你是一個開發(fā)者,正在為自己的軟件設(shè)計一個更新后臺。傳統(tǒng)的方法總是讓人頭大:配置服務(wù)器、數(shù)據(jù)庫、API接口,簡直繁瑣到不想動彈。別擔(dān)心,今天我來教你一招,讓你用 Aardio + JSON-RPC 2.0 輕松搞定! 為什么選擇 Aardio 和 JSON-RPC 2.0?實戰(zhàn)演練:幾步到位第一步:創(chuàng)建 SQLite 數(shù)據(jù)庫 我們需要一個數(shù)據(jù)庫來存儲軟件版本信息。打開 SQLite,創(chuàng)建一個名為 CREATE TABLE versions ( id INTEGER PRIMARY KEY, software_name TEXT, software_version TEXT, download_url TEXT ); 字段包含:id, 軟件名稱, 軟件版本號, 下載地址 第二步:插入測試數(shù)據(jù) 來一些測試數(shù)據(jù),方便我們后續(xù)測試,這里的下載地址實際應(yīng)用中放到服務(wù)器iis服務(wù)文件夾里,可以直接下載:
用aardio代碼實現(xiàn): import console; import sqlite; var db = sqlite('/versions.db');//打開數(shù)據(jù)庫連接,參數(shù)指定硬盤文件路徑 //創(chuàng)建數(shù)據(jù)表 if( not db.existsTable('versions') /*是否已存在指定的表*/ ) { db.exec( 'CREATE TABLE versions ( id INTEGER PRIMARY KEY, software_name TEXT, software_version TEXT, download_url TEXT );' ); } db.exec('INSERT INTO versions (software_name, software_version, download_url) VALUES ('MyApp', '1.0.0', 'http://localhost/update/MyApp_1.0.0.exe');') db.close() console.log('versions.db 數(shù)據(jù)庫創(chuàng)建完成') console.pause(); 第三步:編寫服務(wù)端代碼 用 Aardio 寫個簡單的服務(wù)器: import win 第四步:編寫客戶端代碼 客戶端負(fù)責(zé)檢查更新并下載: import web.rpc.jsonClient import console import inet.downBox import fsys.version var client = web.rpc.jsonClient('http://122.0.0.1:8080/jsonrpc') var rep, err = client.getLatestVersion('MyApp') if (rep[['result']]) { var versionInfo = rep.result // 比較本地版本和服務(wù)器版本 if (fsys.version.getInfo(io.fullpath('\MyApp.exe')).fileVersion < fsys.version(versionInfo.software_version)) { //下載文件 var url = versionInfo.download_url console.log('有新版本:',versionInfo.software_version) console.log('下載地址:',url) var down = inet.downBox(,'下載',true) if (down.download(url,'\MyApp.exe')) { console.log('下載完成') down.removeResumeFile() //移除配置文件 } } else { console.log('文件已是最新無需更新') } } else if (err) { console.dump(err) } console.pause(true); 運行效果: 這個簡單的例子,實際應(yīng)用中可以進(jìn)行擴展
?? 還在猶豫什么?這個12月,讓我們一起學(xué)習(xí) Aardio,開啟編程之旅! |
|