wahandler peer 파일 분리

This commit is contained in:
2023-12-18 23:22:49 +09:00
parent ef75de4f55
commit 43d3e8cbff
4 changed files with 178 additions and 53 deletions

View File

@ -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)
}