From 38ed41ad5679c6c4d682c736ab37794e09096505 Mon Sep 17 00:00:00 2001 From: boyce Date: Fri, 25 Jan 2019 10:10:13 +0800 Subject: [PATCH] =?UTF-8?q?=E5=88=A0=E9=99=A4=E6=97=A0=E7=94=A8=E7=9A=84?= =?UTF-8?q?=E5=B7=A5=E7=A8=8B?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- sysmodule/websocketclient.go | 159 ----------------------------------- wsservice/wsservice.go | 35 -------- 2 files changed, 194 deletions(-) delete mode 100644 sysmodule/websocketclient.go delete mode 100644 wsservice/wsservice.go diff --git a/sysmodule/websocketclient.go b/sysmodule/websocketclient.go deleted file mode 100644 index 29d8291..0000000 --- a/sysmodule/websocketclient.go +++ /dev/null @@ -1,159 +0,0 @@ -package sysmodule - -import ( - "fmt" - "log" - "net/http" - "net/url" - - "github.com/gorilla/websocket" - - "time" -) - -type IWebsocketClient interface { - Init(slf IWebsocketClient, strurl string, bproxy bool, timeoutsec time.Duration) error - Start() error - WriteMessage(msg []byte) error - OnDisconnect() error - OnConnected() error - OnReadMessage(msg []byte) error -} - -type WebsocketClient struct { - WsDailer *websocket.Dialer - conn *websocket.Conn - url string - state int //0未连接状态 1连接状态 - bwritemsg chan []byte - slf IWebsocketClient - timeoutsec time.Duration -} - -func (ws *WebsocketClient) Init(slf IWebsocketClient, strurl string, bproxy bool, timeoutsec time.Duration) error { - - ws.timeoutsec = timeoutsec - ws.slf = slf - if bproxy == true { - proxy := func(_ *http.Request) (*url.URL, error) { - return url.Parse("http://127.0.0.1:1080") - } - - if timeoutsec > 0 { - tosec := timeoutsec * time.Second - ws.WsDailer = &websocket.Dialer{Proxy: proxy, HandshakeTimeout: tosec} - } else { - ws.WsDailer = &websocket.Dialer{Proxy: proxy} - } - } else { - if timeoutsec > 0 { - tosec := timeoutsec * time.Second - ws.WsDailer = &websocket.Dialer{HandshakeTimeout: tosec} - } else { - ws.WsDailer = &websocket.Dialer{} - } - } - - ws.url = strurl - ws.bwritemsg = make(chan []byte, 1000) - - return nil -} - -func (ws *WebsocketClient) OnRun() error { - for { - if ws.state == 0 { - time.Sleep(1 * time.Second) - ws.StartConnect() - } else { - ws.conn.SetReadDeadline(time.Now().Add(ws.timeoutsec * time.Second)) - _, message, err := ws.conn.ReadMessage() - - if err != nil { - log.Printf("到服务器的连接断开 %+v\n", err) - ws.conn.Close() - ws.state = 0 - ws.slf.OnDisconnect() - continue - } - - ws.slf.OnReadMessage(message) - } - } - - return nil -} - -func (ws *WebsocketClient) StartConnect() error { - - var err error - ws.conn, _, err = ws.WsDailer.Dial(ws.url, nil) - fmt.Printf("connecting %s, %+v\n", ws.url, err) - if err != nil { - return err - } - - ws.state = 1 - ws.slf.OnConnected() - - return nil -} - -func (ws *WebsocketClient) Start() error { - ws.state = 0 - go ws.OnRun() - go ws.writeMsg() - return nil -} - -//触发 -func (ws *WebsocketClient) writeMsg() error { - timerC := time.NewTicker(time.Second * 5).C - for { - if ws.state == 0 { - time.Sleep(1 * time.Second) - continue - } - select { - case <-timerC: - if ws.state == 1 { - ws.WriteMessage([]byte(`ping`)) - } - case msg := <-ws.bwritemsg: - if ws.state == 1 { - ws.conn.SetWriteDeadline(time.Now().Add(ws.timeoutsec * time.Second)) - err := ws.conn.WriteMessage(websocket.TextMessage, msg) - - if err != nil { - fmt.Print(err) - ws.state = 0 - ws.conn.Close() - ws.slf.OnDisconnect() - } - } - } - } - - return nil -} - -func (ws *WebsocketClient) WriteMessage(msg []byte) error { - ws.bwritemsg <- msg - return nil -} - -func (ws *WebsocketClient) OnDisconnect() error { - - return nil -} - -func (ws *WebsocketClient) OnConnected() error { - - return nil -} - -//触发 -func (ws *WebsocketClient) OnReadMessage(msg []byte) error { - - return nil -} diff --git a/wsservice/wsservice.go b/wsservice/wsservice.go deleted file mode 100644 index 675c401..0000000 --- a/wsservice/wsservice.go +++ /dev/null @@ -1,35 +0,0 @@ -package wsservice - -import ( - "origin/service" -) - -//声明控制器函数Map类型变量 - -type cWSService struct { - service.BaseService - port int -} - -func (ws *cWSService) OnInit() error { - return nil -} - -func (ws *cWSService) OnRun() error { - - return nil -} - -func (ws *cWSService) OnDestory() error { - return nil -} - -func NewWSService(servicetype int) *cWSService { - wss := new(cWSService) - wss.Init(wss, servicetype) - return wss -} - -func (ws *cWSService) RPC_TestMethod(a string, b int) error { - return nil -}