-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathGameNetWork.lua
More file actions
122 lines (90 loc) · 2.39 KB
/
GameNetWork.lua
File metadata and controls
122 lines (90 loc) · 2.39 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
--[[
]]
require ("GameConst")
require ("MsgConst")
local CGameNetWork = class("CGameNetWork")
local outStringData = nil
local responseCB = nil
local cb = nil
local network = require("framework/client/network")
--[[--
@serverID: select server index
@requestID:
@tableData: the data must be table, it will be encode as json
@callback: response listener
]]
function CGameNetWork:SendData(playerID, serverID, requestID, tableData , callback )
-- 1.网络不好
if(network.isInternetConnectionAvailable() == false) then
device.showAlert("network", "internet error")
return
end
-- 2.服务器无法连接
-- if(network.isHostNameReachable(tostring(ServerInfo.SERVER_IP)) == false) then
-- device.showAlert("server","connect server error")
-- return
-- end
-- msg
local msg = {}
msg.Head = MSG_HEAD;
msg.Head.DID = WRUtility:GetDeviceID()
msg.Head.ReqID = requestID
msg.Head.SNAME = msg.Head.Build .. '_' .. serverID
msg.Head.PID = playerID
msg.Body = tableData
print("========request id =========:" .. msg.Head.ReqID)
-- encode json
local jsonOutPut = require("framework/shared/json/simplejson")
if(msg ~= nil) then
outStringData = jsonOutPut.encode(msg)
end
-- set callback
cb = callback
-- send Request
self.Request()
end
--[[--
send to server
]]
function CGameNetWork:Request()
local function responseCB( data )
local request = data["request"]
local Rescode = request:getResponseStatusCode()
local j = require "framework/shared/json/simplejson"
local zipRes = request:getResponseDataLua()
game.Debuger:logToConsole("zip:" ..zipRes)
-- uncompress data
local res,eof,bin,bout = zlib.inflate()(zipRes)
if(eof) then
game.Debuger:logToConsole("unzip:" .. res)
else
game.Debuger:logToConsole("=|eof is false|=" .. bin .. "," .. bout)
end
-- json decode
if(res ~= "") then
codeJson = j.decode(res)
else
codeJson = ""
end
-- deliver the data to outside function callback
if cb ~= nil then
cb(codeJson)
end
end -- end function
local serverURL = ServerInfo["SERVER_URL"]
--CCHTTPRequest
httpRequest = network.createHTTPRequest(
responseCB ,
serverURL,
"POST"
)
--debug.logToConsole(outStringData)
httpRequest:setPOSTData(outStringData)
httpRequest:start()
end
function CGameNetWork:disconnect()
end
function CGameNetWork:ctor()
-- body
end
return CGameNetWork