1
This commit is contained in:
parent
67ec492463
commit
dd01c08cca
@ -8,14 +8,14 @@ import (
|
|||||||
http的请求分为两种风格
|
http的请求分为两种风格
|
||||||
go style: go风格回调的时候不会join主线程,被回调方需要处理线程同步问题
|
go style: go风格回调的时候不会join主线程,被回调方需要处理线程同步问题
|
||||||
js style: js风格回调时候会自动join主线程,被回调方无需处理线程同步问题
|
js style: js风格回调时候会自动join主线程,被回调方无需处理线程同步问题
|
||||||
*/
|
*/
|
||||||
|
|
||||||
const (
|
const (
|
||||||
GO_STYLE_REQUEST = 1
|
GO_STYLE_REQUEST = 1
|
||||||
JS_STYLE_REQUEST = 2
|
JS_STYLE_REQUEST = 2
|
||||||
|
|
||||||
NORMAL_CHANNEL = 1
|
NORMAL_CHANNEL = 1
|
||||||
QUICK_CHANNEL = 2
|
QUICK_CHANNEL = 2
|
||||||
)
|
)
|
||||||
|
|
||||||
type HttpCliResponse interface {
|
type HttpCliResponse interface {
|
||||||
@ -26,21 +26,20 @@ type HttpCliResponse interface {
|
|||||||
}
|
}
|
||||||
|
|
||||||
type httpCliResponse struct {
|
type httpCliResponse struct {
|
||||||
err error
|
err error
|
||||||
data map[string]interface{}
|
data map[string]interface{}
|
||||||
rawData string
|
rawData string
|
||||||
isTimeOut bool
|
isTimeOut bool
|
||||||
}
|
}
|
||||||
|
|
||||||
type httpCliMgr struct {
|
type httpCliMgr struct {
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
func (this *httpCliMgr) init() {
|
func (this *httpCliMgr) init() {
|
||||||
_app.RegisterIMMsgHandle(
|
_app.RegisterIMMsgHandle(
|
||||||
IM_HTTP_CLI_MGR_RESPONSE,
|
IM_HTTP_CLI_MGR_RESPONSE,
|
||||||
func (args q5.Args) {
|
func(args q5.Args) {
|
||||||
cb := args[0].(func (HttpCliResponse))
|
cb := args[0].(func(HttpCliResponse))
|
||||||
rsp := args[1].(*httpCliResponse)
|
rsp := args[1].(*httpCliResponse)
|
||||||
cb(rsp)
|
cb(rsp)
|
||||||
})
|
})
|
||||||
@ -51,7 +50,7 @@ func (this *httpCliMgr) unInit() {
|
|||||||
|
|
||||||
func (this *httpCliMgr) SendGoStyleRequest(
|
func (this *httpCliMgr) SendGoStyleRequest(
|
||||||
url string, params map[string]string,
|
url string, params map[string]string,
|
||||||
cb func (HttpCliResponse)) {
|
cb func(HttpCliResponse)) {
|
||||||
this.internalSendRequest(
|
this.internalSendRequest(
|
||||||
GO_STYLE_REQUEST,
|
GO_STYLE_REQUEST,
|
||||||
NORMAL_CHANNEL,
|
NORMAL_CHANNEL,
|
||||||
@ -60,9 +59,31 @@ func (this *httpCliMgr) SendGoStyleRequest(
|
|||||||
cb)
|
cb)
|
||||||
}
|
}
|
||||||
|
|
||||||
|
func (this *httpCliMgr) SyncSendGoStyleRequest(
|
||||||
|
url string, params map[string]string,
|
||||||
|
cb func(HttpCliResponse)) {
|
||||||
|
chDone := make(chan bool)
|
||||||
|
this.internalSendRequest(
|
||||||
|
GO_STYLE_REQUEST,
|
||||||
|
NORMAL_CHANNEL,
|
||||||
|
url,
|
||||||
|
params,
|
||||||
|
func(rsp HttpCliResponse) {
|
||||||
|
cb(rsp)
|
||||||
|
chDone <- true
|
||||||
|
})
|
||||||
|
for {
|
||||||
|
select {
|
||||||
|
case <-chDone:
|
||||||
|
close(chDone)
|
||||||
|
return
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
func (this *httpCliMgr) SendJsStyleRequest(
|
func (this *httpCliMgr) SendJsStyleRequest(
|
||||||
url string, params map[string]string,
|
url string, params map[string]string,
|
||||||
cb func (HttpCliResponse)) {
|
cb func(HttpCliResponse)) {
|
||||||
this.internalSendRequest(
|
this.internalSendRequest(
|
||||||
JS_STYLE_REQUEST,
|
JS_STYLE_REQUEST,
|
||||||
NORMAL_CHANNEL,
|
NORMAL_CHANNEL,
|
||||||
@ -73,7 +94,7 @@ func (this *httpCliMgr) SendJsStyleRequest(
|
|||||||
|
|
||||||
func (this *httpCliMgr) SendQuickChannelGoStyleRequest(
|
func (this *httpCliMgr) SendQuickChannelGoStyleRequest(
|
||||||
url string, params map[string]string,
|
url string, params map[string]string,
|
||||||
cb func (HttpCliResponse)) {
|
cb func(HttpCliResponse)) {
|
||||||
this.internalSendRequest(
|
this.internalSendRequest(
|
||||||
GO_STYLE_REQUEST,
|
GO_STYLE_REQUEST,
|
||||||
QUICK_CHANNEL,
|
QUICK_CHANNEL,
|
||||||
@ -84,7 +105,7 @@ func (this *httpCliMgr) SendQuickChannelGoStyleRequest(
|
|||||||
|
|
||||||
func (this *httpCliMgr) SendQuickChannelJsStyleRequest(
|
func (this *httpCliMgr) SendQuickChannelJsStyleRequest(
|
||||||
url string, params map[string]string,
|
url string, params map[string]string,
|
||||||
cb func (HttpCliResponse)) {
|
cb func(HttpCliResponse)) {
|
||||||
this.internalSendRequest(
|
this.internalSendRequest(
|
||||||
JS_STYLE_REQUEST,
|
JS_STYLE_REQUEST,
|
||||||
QUICK_CHANNEL,
|
QUICK_CHANNEL,
|
||||||
@ -96,7 +117,7 @@ func (this *httpCliMgr) SendQuickChannelJsStyleRequest(
|
|||||||
func (this *httpCliMgr) internalSendRequest(
|
func (this *httpCliMgr) internalSendRequest(
|
||||||
style int32, channel int32,
|
style int32, channel int32,
|
||||||
url string, params map[string]string,
|
url string, params map[string]string,
|
||||||
cb func (HttpCliResponse)) {
|
cb func(HttpCliResponse)) {
|
||||||
if !(style == GO_STYLE_REQUEST || style == JS_STYLE_REQUEST) {
|
if !(style == GO_STYLE_REQUEST || style == JS_STYLE_REQUEST) {
|
||||||
panic("httpCliMgr sytel error")
|
panic("httpCliMgr sytel error")
|
||||||
}
|
}
|
||||||
@ -113,7 +134,7 @@ func (this *httpCliMgr) internalSendRequest(
|
|||||||
if style == GO_STYLE_REQUEST {
|
if style == GO_STYLE_REQUEST {
|
||||||
cb(rsp)
|
cb(rsp)
|
||||||
} else {
|
} else {
|
||||||
_app.AddIMMsg(IM_HTTP_CLI_MGR_RESPONSE, []interface{} {
|
_app.AddIMMsg(IM_HTTP_CLI_MGR_RESPONSE, []interface{}{
|
||||||
cb,
|
cb,
|
||||||
rsp,
|
rsp,
|
||||||
})
|
})
|
||||||
@ -135,10 +156,10 @@ func (this *httpCliResponse) GetJsonData() map[string]interface{} {
|
|||||||
return this.data
|
return this.data
|
||||||
}
|
}
|
||||||
|
|
||||||
func (this *httpCliResponse) GetRawData() string {
|
func (this *httpCliResponse) GetRawData() string {
|
||||||
return this.rawData
|
return this.rawData
|
||||||
}
|
}
|
||||||
|
|
||||||
func (this *httpCliResponse) IsTimeOut() bool {
|
func (this *httpCliResponse) IsTimeOut() bool {
|
||||||
return this.isTimeOut
|
return this.isTimeOut
|
||||||
}
|
}
|
||||||
|
Loading…
x
Reference in New Issue
Block a user