| 1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162 |
- package internal
- import (
- // "math/rand"
- // "time"
- "github.com/gorilla/websocket"
- "one.com/nnet"
- )
- // 客户端组
- type WsClient struct {
- *Hub
- addr string
- pos int // 指示当前连接第几个 addr
- }
- func NewWsClient(cf *nnet.HubConfig, cb nnet.ISessionCallback, p nnet.IProtocol) *WsClient {
- return &WsClient{
- Hub: newHub(cf, cb, p),
- pos: 0,
- }
- }
- func (self *WsClient) Start() error {
- return nil
- }
- func (self *WsClient)NewConnection(addr string, id uint64) error {
- conn, _, err := websocket.DefaultDialer.Dial(addr, nil)
- if err != nil {
- return err
- }
- self.wg.Add(1)
- go func() {
- ses := newSession(NewWsConn(conn), self)
- ses.UpdateId(id)
- ses.Do()
- self.wg.Done()
- }()
- return nil
- }
- func (self *WsClient) DoJob(int) {
- }
- //func (self *WsClient) ConnectRand(addrs []string) error {
- // src := rand.NewSource(time.Now().UnixNano())
- // rnd := rand.New(src)
- // n := rnd.Intn(len(addrs))
- // addr := addrs[n]
- // return self.Connect(1, addr)
- //}
- func (self *WsClient) Stop() error {
- close(self.chQuit)
- self.wg.Wait()
- return nil
- }
|