public void PublishHostMsgInfo(Object secsLog) { lock (publishHostMsgLock) { try { LogTitle_SECS logSECS = secsLog as LogTitle_SECS; byte[] systemMsg_Serialize = BLL.LineBLL.Convert2GPB_SECSMsgInfo(logSECS); if (systemMsg_Serialize != null) { scApp.getNatsManager().PublishAsync (SCAppConstants.NATS_SUBJECT_SECS_LOG, systemMsg_Serialize); } } catch (Exception ex) { logger.Error(ex, "Exception:"); } } }
private void setSecsMessage() { string subject = BCAppConstants.NATSTopics.NATS_SUBJECT_SECS_LOG; //指定要執行的動作 EventHandler <StanMsgHandlerArgs> msgHandler = (senders, args) => { lock (SecsMsgLock) { byte[] arrayByte = args.Message.Data; if (arrayByte == null) { return; } //反序列化 Google.Protobuf.MessageParser <HOSTLOG_INFO> parser = new Google.Protobuf.MessageParser <HOSTLOG_INFO>(() => new HOSTLOG_INFO()); HOSTLOG_INFO hostmessage = parser.ParseFrom(arrayByte); LogTitle_SECS logTitleTemp = new LogTitle_SECS() { EQ_ID = hostmessage.EQID, Sx = hostmessage.SX, Fy = hostmessage.FY, FunName = hostmessage.FUNNAME, SendRecive = hostmessage.SENDRECEIVE, DeviceID = hostmessage.DEVICE, Message = hostmessage.MESSAGE, LogType = BCAppConstants.LogType.SECS_ForHost.ToString() }; logTitleTemp.Time = hostmessage.TIME; Task.Run(() => logUtility.addLogInfo(logTitleTemp)); } }; //訂閱 app.GetNatsManager().Subscriber(subject, msgHandler, false, true, 0, null); }