示例#1
0
        private EnumMessageMap getRequestNo(string e, String sessionId)
        {
            HashMap        map  = JsonConvert.DeserializeObject <HashMap>(e);
            String         key  = map.GetValue <String>("key");
            EnumMessageMap enNo = (EnumMessageMap)Enum.Parse(typeof(EnumMessageMap), key);

            if (map.ContainsKey("pubmessage"))
            {
                if (!sessionList.ContainsKey(sessionId))
                {
                    sessionList.Add(sessionId, e);
                }
            }

            return(enNo);
        }
示例#2
0
        protected void WebSocketServer_NewMessageReceived(WebSocketSession session, string e)
        {
            Console.WriteLine("收到websocket请求,sessionID为" + session.SessionID);

            Console.WriteLine("收到websocket请求,内容为" + e);



            try
            {
                EnumMessageMap enNo   = getRequestNo(e, session.SessionID);
                String         result = e;

                int    errorCode    = 0;
                String errorMessage = "";
                switch (enNo)
                {
                //获取打印机列表
                case EnumMessageMap.printerList:

                    result = ProcGetPrinterList();

                    break;

                //执行小规模打印任务
                case EnumMessageMap.printJob:

                    result = ProcPrintJob(e, ref errorCode, ref errorMessage);

                    break;

                //旧业务写程下载+清空目录
                case EnumMessageMap.BurnSoft:

                    result = BurnSoftDown(e);

                    break;

                //获取本机在局域网中的IP
                case EnumMessageMap.httpServer:

                    result = ProcIp(session, e);

                    break;

                //旧业务,获取合众思壮电子秤重量
                case EnumMessageMap.com_weighting:

                    result = ProcSerialPort(session, e);

                    break;


                //获取串口列表
                case EnumMessageMap.comList:

                    result = comList(session, e);

                    break;


                //配置串口
                case EnumMessageMap.comSetting:

                    result = comSetting(session, e);

                    break;


                case EnumMessageMap.openCom:

                    String sessionID = session.SessionID;

                    if (!SerialPortEntity.currentSessionPool.ContainsKey(sessionID))
                    {
                        SerialPortEntity.currentSessionPool.Add(sessionID, session);
                    }

                    result = openCom(e);

                    break;


                case EnumMessageMap.closeCom:

                    result = closeCom(e);

                    break;

                //向串口发送十六进制指令
                case EnumMessageMap.sendComCommand:

                    result = sendComCommand(session, e);

                    break;


                //创建文件
                case EnumMessageMap.createFile:

                    result = createFile(session, e);

                    break;


                //删除文件
                case EnumMessageMap.deleteFile:

                    result = deleteFile(session, e);

                    break;

                //重命名文件
                case EnumMessageMap.renameFile:

                    result = renameFile(session, e);

                    break;


                //解析文件配置
                case EnumMessageMap.resolveFileSetting:

                    result = resolveFile(session, e);

                    break;


                //删除目录
                case EnumMessageMap.rmDir:

                    result = rmDir(session, e);

                    break;


                //监控目录
                case EnumMessageMap.watchDir:

                    result = watchDir(session, e);

                    break;

                //创建目录
                case EnumMessageMap.mkDir:

                    result = mkDir(session, e);

                    break;


                //重命名或者移动目录
                case EnumMessageMap.mvDir:

                    result = mvDir(session, e);

                    break;

                //配置FTP访问方式
                case EnumMessageMap.ftpSetting:

                    result = ftpSetting(session, e);

                    break;


                //启用三菱plc
                case EnumMessageMap.StartSLPLC:

                    result = FetchValueFromPlc(session, e);

                    break;


                //停用三菱plc
                case EnumMessageMap.stopSLPlc:

                    result = stopSLPlc(session, e);

                    break;


                //通过modbus协议从plc从机设备的某个寄存器地址读取值
                case EnumMessageMap.modbusInteract:

                    result = modbusInteract(session, e);

                    break;


                //向指定的sessionID串(逗号分隔),推送消息,主要是用于订阅延迟返回
                //的一些消息
                case EnumMessageMap.pushMessage:

                    result = pushMessage(e);

                    break;


                case EnumMessageMap.BroadCastMessage:

                    BroadCastMsg(session, e);

                    result = EnumMessageMap.OK.ToString();

                    break;

                default:

                    break;
                }

                session.Send(result);

                Console.WriteLine("正确处理了请求" + result);
            }
            catch (Exception err)
            {
                Console.WriteLine("处理结果异常" + err.Message);
                try
                {
                    session.Send(e);
                }
                catch (Exception er)
                {
                    Console.WriteLine("回发结果异常" + er.Message);
                }
            }
        }