(key, Addr string)
| 198 | } |
| 199 | |
| 200 | func connServer(key, Addr string) { |
| 201 | var err error |
| 202 | defer func() { |
| 203 | wsclient.mtx.Lock() |
| 204 | if clientArr[key] != nil { |
| 205 | _ = clientArr[key].Close() |
| 206 | } |
| 207 | |
| 208 | clientArr[key] = nil |
| 209 | defer wsclient.mtx.Unlock() |
| 210 | WSLog(Addr + " 自动重连") |
| 211 | //自动重连机制 |
| 212 | time.Sleep(3 * time.Second) |
| 213 | connServer(key, Addr) |
| 214 | }() |
| 215 | wsclient.c, _, err = websocket.DefaultDialer.Dial(Addr, nil) |
| 216 | |
| 217 | if err != nil { |
| 218 | return |
| 219 | } |
| 220 | clientArr[key] = wsclient.c |
| 221 | |
| 222 | for { |
| 223 | var res []byte |
| 224 | _, res, err := clientArr[key].ReadMessage() |
| 225 | if err != nil { |
| 226 | WSLog("数据读取失败") |
| 227 | return |
| 228 | } |
| 229 | var msg baseMsg |
| 230 | err = json.Unmarshal(res, &msg) |
| 231 | if err != nil { |
| 232 | WSLog("数据解析失败") |
| 233 | return |
| 234 | } |
| 235 | SmartIDELog.ConsoleDebug(fmt.Sprintf("服务器推送数据:%+v\n", msg)) |
| 236 | httpReqMsgReceiver.ClientCodeToFunc(msg) |
| 237 | // httpReqMsgReceiver.receiveMsg(msg.CmdSequence, res) |
| 238 | } |
| 239 | } |
| 240 | |
| 241 | // 发送给固定客户端 |
| 242 | func (w *receiver) receiveMsg(cmd int, msg []byte) { |
no test coverage detected