前言
百度:
https://q.qq.com/wiki/cloud/base/intro.html
QQ:
https://q.qq.com/wiki/cloud/base/intro.html
WX:
https://developers.weixin.qq.com/minigame/dev/wxcloud/basis/getting-started.html
當下云開發比較火,不過本人并不是很感冒,因為他的好處顯而易見,但缺點也是致命的,
好處就是1. 不用自己買服務器,域名認證,不用擔心服務器過期;省去了很多時間,2. 初始容量免費,基本夠用,
缺點就是不能跨平臺,這個就很傷了,我們開發一款游戲不可能只上一個平臺吧!雖然我們可以上所有擁有云開發能力的平臺,但是畢竟沒有云開發能力的平臺也很多啊!
不過例如世界排行榜這樣的功能還是可以用一下的,頂多就是沒有云開發能力的平臺不顯示排行榜功能就是了,
我是用這個云開發能力做了一個比較完整的買賣系統,進入這個系統后所有資料聯網獲取,離開這個系統單機玩法,所以沒有云開發能力的平臺也就只能體驗單機部分了,
開始
這里我以微信云開發為例:
-
開通服務
這一步要注意的是使用的appId 不能是測驗id,否則你的云開發按鈕是不可點擊的,
這一步結束之后你會獲得一個環境id, -
初始化
wx.cloud.init({
env: 'test-x1dzi'
})
將上一步獲得的環境id傳入init函式即做好了初始化作業,而且此方法是沒有回傳值的,
3. 呼叫云函式
wx.cloud.callFunction({
name: 'add',
data: {
a: 12,
b: 19
}
}).then(console.log)
基本在小程式端的重要部分就這些了,當你看過了幾個支持云開發的平臺說明檔案后你會發現,他們在小程式端的使用方式其實是一樣的,只是命名空間的不同而已,所以在小程式端很容易做好多平臺支持的,
剩下的就是寫云函式了,微信云其實就是nodejs服務器,每一個云函式你可以理解為后端經過路由后呼叫的函式,只是在除錯和上傳上的方式上有所不同而已,
這里的除錯是比較難受的,首先用creator打出來的包云函式目錄是會被清理的,如果你把函式目錄放到build-template中你又沒法像在微信開發者工具中一樣及時的看效果,又不能在開發者工具中改動一下就復制一份到build-template中,由于我的系統沒那么復雜,所以目前就是每次打包后重新下載我需要的云函式,其實可以寫個插件,在打包之前把云函式存放到一個地方,打完包之后再放回來,
開發方式
我的開發方式比較簡單,直接將小程式端的云函式呼叫寫成一個服務,添加到我的網路框架中,就跟我用長短鏈接一樣使用了,
文章地址:https://mp.weixin.qq.com/s/DQuiQejiS6qtBTef_yu0Sw
擴展的方式很簡單
- 定義一個新的鏈接方式,

- 定義類,實作介面
這里的url 就是環境id,協議號就是云函式的名稱,
對于sendData類中的接收方式可以自己隨意更改,
export default class WXCloudService extends Service {
/**
* 由于init函式無回傳值,所以直接通知鏈接成功
* @param url 相當于環境ID
* @param port 無用
*/
connect(url: string, port?: number) {
super.connect(url);
console.log("WXCloudService connect url ", url)
wx.cloud.init({
env: url
})
this.emit(NetConfig.OPEN, url);
}
sendData(message: SendMessage) {
let self = this;
let protoID = message.getProtoID();
let data = https://www.cnblogs.com/cgw0827/p/message.getData();
console.log("WXCloudService sendData protoID ", protoID,' data ',data)
wx.cloud.callFunction({
// 需呼叫的云函式名
name: protoID,
// 傳給云函式的引數
data: data,
success: function (res) {
console.log('WXCloudService success res ', res)
self.onData(res.result, protoID);
},
fail: function (res) {
console.log('WXCloudService fail res ', res)
self.onError(message);
},
complete: function (res) { },
})
}
isReady() {
return true;
}
}
-
在工廠中創建

-
鏈接時使用之前定義的Netconfig.CLOUD

-
使用方式我已經在《一個可屏蔽長短鏈接的網路模塊》文章中說過,這里就不在贅述了,
注意事項
- 云函式的創建,使用后臺創建的云函式,和在開發者工具中創建的云函式不同,我最終選擇使用開發者工具創建,然后上傳,
- 本地除錯,有時候沒有發現任何錯誤,除錯就是啟動失敗,刪了云函式,重新下載再啟動就好使了,
- 千萬記住,云函式上傳之后再用creator打包,否則你的函式就白寫了,所以最好還是用一種你熟悉的方式,在打包的時候動手腳,
- 不建議使用doc函式,它只支持傳入_id ,

結語
以上就是我這幾天使用云開發的心得,也是感覺比較重要的地方,當然,最侄訓是推薦看檔案,那里更詳細,
如需購買框架,請進入公眾號點擊我的服務,原始碼出售標簽,
歡迎關注公眾號《微笑游戲》,瀏覽更多內容,

歡迎掃碼關注公眾號《微笑游戲》,瀏覽更多內容,
轉載請註明出處,本文鏈接:https://www.uj5u.com/qita/670.html
標籤:其他
