package logic import ( "fusenapi/constants" ) // 消息分发工厂 type allocationProcessorFactory interface { allocationMessage(data []byte) } var mapAllocationProcessor = make(map[constants.Websocket]allocationProcessorFactory) func (w *wsConnectItem) newAllocationProcessor(msgType constants.Websocket) allocationProcessorFactory { if obj, ok := mapAllocationProcessor[msgType]; ok { return obj } var obj allocationProcessorFactory switch msgType { //图片渲染 case constants.WEBSOCKET_RENDER_IMAGE: obj = &renderProcessor{*w} //刷新重连请求恢复上次连接的标识 case constants.WEBSOCKET_REQUEST_REUSE_LAST_CONNECT: obj = &reuseConnProcessor{*w} default: } if obj != nil { mapAllocationProcessor[msgType] = obj } return obj }