Skip to content

Commit f5a060e

Browse files
committed
Improved websocket service.
1 parent fb7af06 commit f5a060e

2 files changed

Lines changed: 24 additions & 6 deletions

File tree

hprose/websocket_service.go

Lines changed: 12 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -61,7 +61,8 @@ func (fixer wsArgsFixer) FixArgs(args []reflect.Value, lastParamType reflect.Typ
6161

6262
// NewWebSocketService is the constructor of WebSocketService
6363
func NewWebSocketService() *WebSocketService {
64-
service := &WebSocketService{HttpService: NewHttpService()}
64+
service := new(WebSocketService)
65+
service.HttpService = NewHttpService()
6566
service.argsfixer = wsArgsFixer{}
6667
service.Upgrader = &websocket.Upgrader{
6768
CheckOrigin: func(r *http.Request) bool {
@@ -86,14 +87,22 @@ func (service *WebSocketService) ServeHTTP(response http.ResponseWriter, request
8687
}
8788
conn, err := service.Upgrade(response, request, nil)
8889
if err != nil {
89-
context := &HttpContext{BaseContext: NewBaseContext(), Response: response, Request: request}
90+
context := new(HttpContext)
91+
context.BaseContext = NewBaseContext()
92+
context.Response = response
93+
context.Request = request
9094
service.fireErrorEvent(err, context)
9195
return
9296
}
9397
defer conn.Close()
9498
mutex := sync.Mutex{}
9599
for {
96-
context := &WebSocketContext{HttpContext: &HttpContext{BaseContext: NewBaseContext(), Response: response, Request: request}, WebSocket: conn}
100+
context := new(WebSocketContext)
101+
context.HttpContext = new(HttpContext)
102+
context.BaseContext = NewBaseContext()
103+
context.Response = response
104+
context.Request = request
105+
context.WebSocket = conn
97106
msgType, data, err := conn.ReadMessage()
98107
if err != nil {
99108
break

websocket_service.go

Lines changed: 12 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -61,7 +61,8 @@ func (fixer wsArgsFixer) FixArgs(args []reflect.Value, lastParamType reflect.Typ
6161

6262
// NewWebSocketService is the constructor of WebSocketService
6363
func NewWebSocketService() *WebSocketService {
64-
service := &WebSocketService{HttpService: NewHttpService()}
64+
service := new(WebSocketService)
65+
service.HttpService = NewHttpService()
6566
service.argsfixer = wsArgsFixer{}
6667
service.Upgrader = &websocket.Upgrader{
6768
CheckOrigin: func(r *http.Request) bool {
@@ -86,14 +87,22 @@ func (service *WebSocketService) ServeHTTP(response http.ResponseWriter, request
8687
}
8788
conn, err := service.Upgrade(response, request, nil)
8889
if err != nil {
89-
context := &HttpContext{BaseContext: NewBaseContext(), Response: response, Request: request}
90+
context := new(HttpContext)
91+
context.BaseContext = NewBaseContext()
92+
context.Response = response
93+
context.Request = request
9094
service.fireErrorEvent(err, context)
9195
return
9296
}
9397
defer conn.Close()
9498
mutex := sync.Mutex{}
9599
for {
96-
context := &WebSocketContext{HttpContext: &HttpContext{BaseContext: NewBaseContext(), Response: response, Request: request}, WebSocket: conn}
100+
context := new(WebSocketContext)
101+
context.HttpContext = new(HttpContext)
102+
context.BaseContext = NewBaseContext()
103+
context.Response = response
104+
context.Request = request
105+
context.WebSocket = conn
97106
msgType, data, err := conn.ReadMessage()
98107
if err != nil {
99108
break

0 commit comments

Comments
 (0)