wahandler peer 파일 분리
This commit is contained in:
@ -1,8 +1,8 @@
|
||||
package wshandler
|
||||
|
||||
import (
|
||||
"bytes"
|
||||
"encoding/json"
|
||||
"io"
|
||||
"reflect"
|
||||
"strings"
|
||||
"unsafe"
|
||||
@ -12,7 +12,7 @@ import (
|
||||
"repositories.action2quare.com/ayo/gocommon/logger"
|
||||
)
|
||||
|
||||
type peerApiFuncType func(any, []byte) (any, error)
|
||||
type peerApiFuncType func(any, io.Reader) (any, error)
|
||||
type peerConnFuncType func(any, *websocket.Conn)
|
||||
type peerDisconnFuncType func(any, string)
|
||||
|
||||
@ -100,8 +100,8 @@ func MakeWebsocketPeerApiHandler[T any](receiverName string) WebsocketPeerApiHan
|
||||
}
|
||||
}
|
||||
|
||||
methods[receiverName+"."+method.Name] = func(recv any, buff []byte) (any, error) {
|
||||
decoder := json.NewDecoder(bytes.NewBuffer(buff))
|
||||
methods[receiverName+"."+method.Name] = func(recv any, r io.Reader) (any, error) {
|
||||
decoder := json.NewDecoder(r)
|
||||
inargs := make([]any, len(intypes))
|
||||
|
||||
for i, intype := range intypes {
|
||||
@ -163,21 +163,21 @@ func (hc *WebsocketPeerApiBroker) AddHandler(receiver WebsocketPeerApiHandler) {
|
||||
}
|
||||
}
|
||||
|
||||
func (hc *WebsocketPeerApiBroker) ClientConnected(recv any, c *wsconn) {
|
||||
func (hc *WebsocketPeerApiBroker) ClientConnected(recv any, c *websocket.Conn) {
|
||||
for _, v := range hc.connFuncs {
|
||||
v(recv, c.Conn)
|
||||
v(recv, c)
|
||||
}
|
||||
}
|
||||
|
||||
func (hc *WebsocketPeerApiBroker) ClientDisconnected(recv any, c *wsconn) {
|
||||
func (hc *WebsocketPeerApiBroker) ClientDisconnected(recv any, reason string) {
|
||||
for _, v := range hc.disconnFuncs {
|
||||
v(recv, c.closeMessage)
|
||||
v(recv, reason)
|
||||
}
|
||||
}
|
||||
|
||||
func (hc *WebsocketPeerApiBroker) Call(recv any, funcname string, buff []byte) {
|
||||
func (hc *WebsocketPeerApiBroker) Call(recv any, funcname string, r io.Reader) {
|
||||
if found := hc.methods[funcname]; found != nil {
|
||||
_, err := found(recv, buff)
|
||||
_, err := found(recv, r)
|
||||
if err != nil {
|
||||
logger.Println("api call is failed. err :", err)
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user