cocos-Lua請求服務端資料(XMLHttpRequest小積累)
在公司看視訊回放時,我就在想,這麼神奇,這到底是怎麼實現的?
後來看了一下程式碼,發現有時候你覺得非常不可思議的事,其實很簡單
其實也就是服務端把相應事件的發給客戶端的資料儲存下來,到客戶端要回放了,就去服務端下載資料,再把遊戲過程的流程自動跑一遍
其中就用到了XMLHttpRequest
XMLHttpRequest中提供GET和POST兩種http請求方式,
返回資料型別有以下幾種:
cc.XMLHTTPREQUEST_RESPONSE_STRING = 0 -- 返回字串型別
cc.XMLHTTPREQUEST_RESPONSE_ARRAY_BUFFER = 1 -- 返回位元組陣列型別
cc.XMLHTTPREQUEST_RESPONSE_BLOB = 2 -- 返回二進位制大物件型別
cc.XMLHTTPREQUEST_RESPONSE_DOCUMENT = 3 -- 返回文件物件型別
cc.XMLHTTPREQUEST_RESPONSE_JSON = 4 -- 返回JSON資料型別
local xhr = cc.XMLHttpRequest:new() --http請求 xhr.responseType = cc.XMLHTTPREQUEST_RESPONSE_JSON --請求型別 local url = string.format("http://%sjson/%s.json", NetConfig_getInstance():getHttpDomain(), videoId) --服務端儲存資料的位置與名稱 xhr:open("GET", url) local function onResponse() local str = xhr.response --獲得返回資料 tools.saveVideoJsonFile(videoId, str) --儲存資料到本地 local playInfo = json.decode(str) --解析json檔案 startPlay(playInfo) --傳遞資料進入下一步操作,開始進行回放 end xhr:registerScriptHandler(onResponse) --註冊指令碼方式回撥 xhr:send() --傳送
在程式碼中我們可以看見我們從url的地址裡獲取資料,之後儲存到本地,再解析運用
在這裡是有服務端儲存資料為json格式資料,在客戶端請求獲得資料,之後再進行解析
上面程式碼為儲存從服務端中下載下來的資料,f檔案存在就把資料寫進去--儲存本地json視訊檔案,傳參是該視訊檔名字和json字串,直接返回的是table function tools.saveVideoJsonFile(fileName, content) local pathToSave = cc.FileUtils:getInstance():getWritablePath() local f = io.open(pathToSave .. fileName .. ".json", "w") if f then f:write(content) --寫入資料 f:close() end end
相關推薦
cocos-Lua請求服務端資料(XMLHttpRequest小積累)
在公司看視訊回放時,我就在想,這麼神奇,這到底是怎麼實現的? 後來看了一下程式碼,發現有時候你覺得非常不可思議的事,其實很簡單 其實也就是服務端把相應事件的發給客戶端的資料儲存下來,到客戶端要回放了,就去服務端下載資料,再把遊戲過程的流程自動跑一遍 其中就用到了XMLHtt
在 Angular6 中使用 HTTP 請求服務端資料的步驟詳解
第一步 準備好api介面地址, 例如 https://api.example.com/api/ 第二步 在根元件 app.components.ts 中引入 HttpClientModule 模組。 ? 1 2 3 4 5 6 7
在 Angular6 中使用 HTTP 請求服務端資料
第一步 準備好api介面地址, 例如 https://api.example.com/api/ 第二步 在根元件 app.module.ts 中引入 HttpClientModule 模組。 // app.module.ts import {HttpClientMo
第十章:vue2中axios請求服務端資料
中文文件 一、關於axios的安裝 1、利用npm安裝npm install axios --save 2、利用bower安裝bower install axios --save 3、
HttpClient請求服務端介面資料Get與Post請求
public static void main(String[] args) { //String url = "http://10.3.1.32/proxy_services/MDMConsumerProxyService"; String url = "http
模擬高併發請求服務端(python gevent)
專案背景:對web後端進行高併發的請求,簡單測試服務框架的效能 解決思路:利用python的多執行緒,但python的多執行緒有點“雞肋”, 個人選擇使用簡潔輕便gevent。 解決方案:採用gevent非同步 + requests 進行高併發請求 import time import
基於TCP的客戶端和服務端資料傳輸
功能描述: 從客戶端向服務端傳送字串,服務端接收之後,把字串轉成大寫,並返回給客戶端, 客戶端程式碼 import java.io.IOException; import java.io.InputStream; import java.io.OutputStrea
用nodejs搭建一個本地伺服器,以供本地介面獲取服務端資料
1、首先下載安裝好nodejs 64位的nodejs5.6.0下載地址: 5.6.0 nodejs,根據提示安裝在自己的電腦上即可 2、安裝好了,開啟cmd視窗,輸入命令:npm -v 檢驗nodejs是否安裝成功,如果出現以下介面則說明安裝成功了 3、輸入命令
java服務端微信小程式支付demo
一丶項目錄結構 demo下載地址 小程式支付demo下載 二丶實現步驟 1.在小程式中獲取使用者的登入資訊,成功後可以獲取到使用者的程式碼值 2.在使用者自己的服務端請求微信獲取使用者的OpenID介面,成功後可以電子雜誌使用者的OpenID的值 微信
服務端微信小程式支付/退款詳解
賬號支援:小程式appid,小程式secret,商戶號mchid,商戶secret 服務端和微信支付系統主要互動: 1、小程式內呼叫登入介面,獲取到使用者的openid,api參見公共api【小程式登入API】 前端呼叫介面wx.login() 獲取臨時登入憑
Spring Boot 服務端資料-實現資料校驗功能 、資料校驗、解決異常、其他校驗規則。
1、資料校驗 實體類: Controller層: html 檔案: 2、資料校驗 Controller層:1、在Controller中找到資料校驗的方法 對誰@Valid就是校驗誰。 2、把
服務端效能優化小計
資料交換方式並非類似 TCP 的資料流,所以,沒有必要把服務間的通訊形式強行統一為單個數據塊。最合適做程序內通訊的方式就是 C 結構。訊息傳送方和接收方都處於同一個程序內時,它們一定可以識別同一個 C 結構對映的記憶體塊,不必考慮記憶體佈局,位元組序等問題。在這個層面上使用
vue使用axios非同步請求後端資料的使用
Vue 原本有一個官方推薦的 ajax 外掛 vue-resource,但是自從 Vue 更新到 2.0 之後,官方就不再更新維護 vue-resource,並推薦axios,目前主流的 Vue 專案,都選擇 axios 來完成 ajax 請求。使用方法:方案一:改原型1.安
android客戶端與javaweb服務端通訊——登入小demo的啟示
前兩天討論了javaweb專案連線mysql資料庫的注意事項,是因為剛剛租了一臺ecs雲伺服器,在上面搭載mysql要比Oracle方便很多,今天我們來探討一下android端與服務端通訊的方式方法,更多的是注意事項。 先說服務端,如果查詢成功,就返回一個由物件轉換而成的j
微信小程式向服務端請求資料
荊軻刺秦王 微信的文件有說明: 具體用法: getdata: function () {//定義函式名稱 var that = this; // 這個地方非常重要,重置data{
通用JS工具類封裝——網路資料請求功能、獲取服務端介面 url、引數功能
程式碼片段 'use strict'; var conf = { serverHost = '' }; var _mm = { //網路請求功能 request : function(param){ var _this = this;
微信小程式服務端請求必須HTTPS 微信小程式服務端請求必須HTTPS
微信小程式服務端請求必須HTTPS SSL證書的作用 HTTP明文協議是不安全的傳輸協議,無法進行伺服器端真實身份校驗,也不能為傳輸資料提供加密保護,通過HTTP協議傳輸的資料時刻處在被竊聽、篡改、冒充的風險
微信小程式正式上線,服務端請求必須HTTPS
1月9日凌晨微信小程式正式上線,首批上線的小程式有三百多家,使用者需要將微信更新至iOS6.5.3版本或Android6.5.3版本進行體驗。 微信小程式自9月份首次開啟內測就開始在圈內刷屏了,不需要下載安裝,“用完即走”的理念,使其被譽為“APP殺手”。微信龐大社交
openresty lua zlib整合安裝 讓lua支援解壓服務端壓縮過的資料
來源於http://www.tuicool.com/articles/EZZZFn3的整理 openresty在編譯安裝的時候就加入了lua支援,所以無需再對nginx進行改造。但lua下對gzip進行解壓,需要藉助一個庫:lua- zlib(https://githu
ajax請求返回xml資料(含服務端程式碼)
ajax技術目前已經被jquery包裝的比較完美,但自己使用的地方仍然很多,所以需要自己能夠自定義ajax方法。 以下是從前端ajax發出請求,後臺響應返回xml資料,ajax接收並處理的完整過程,例