public void subscribe(SDKClient.IReceiver messageListener) { TLQMSG_INFO tLQMSG_INFO = default(TLQMSG_INFO); TLQMSG_OPT tLQMSG_OPT = default(TLQMSG_OPT); TLQInterface.Tlq_InitMsgInfo(ref tLQMSG_INFO); TLQInterface.Tlq_InitMsgOpt(ref tLQMSG_OPT); tLQMSG_INFO.Persistence = 1; tLQMSG_INFO.Priority = 5; tLQMSG_INFO.Expiry = -1; tLQMSG_INFO.MsgSize = 10; tLQMSG_OPT.OperateType = 5; tLQMSG_OPT.PubSubScope = 3; tLQMSG_OPT.Topic = this.topicName; tLQMSG_OPT.QueName = this.rcvQueName; bool flag = this.cancelsubFlag == 0; if (flag) { int num = TLQInterface.Tlq_PutMsg(ref this.gid, ref this.qcuId, ref tLQMSG_INFO, ref tLQMSG_OPT, (IntPtr)0, null, ref this.errstru); bool flag2 = num < 0; if (flag2) { throw new Exception("Sub topic faild.Error:" + this.errstru.errstr); } this.CorrMsgId = tLQMSG_INFO.MsgId; this.receiveData(messageListener); } else { this.receiveData(messageListener); } }
public string getMessage() { byte[] array = null; int num = 0; TLQMSG_INFO tLQMSG_INFO = default(TLQMSG_INFO); TLQMSG_OPT tLQMSG_OPT = default(TLQMSG_OPT); TLQError tLQError = default(TLQError); TLQInterface.Tlq_InitMsgInfo(ref tLQMSG_INFO); TLQInterface.Tlq_InitMsgOpt(ref tLQMSG_OPT); tLQMSG_OPT.AckMode = 1; tLQMSG_OPT.WaitInterval = this.pWaitInterval; tLQMSG_OPT.QueName = this.rcvQueName; while (true) { int num2 = TLQInterface.Tlq_GetMsg(ref this.gid, ref this.qcuId, ref tLQMSG_INFO, ref tLQMSG_OPT, ref array, ref tLQError); bool flag = num2 < 0; if (!flag) { goto IL_C8; } num++; bool flag2 = num > 3; if (flag2) { break; } num2 = this.GetProcByTLQError(ref tLQError); bool flag3 = num2 == 1; if (flag3) { num2 = this.ReConnectToTLQ(); } else { bool flag4 = num2 == 2; if (!flag4) { goto IL_C7; } } } throw new Exception("Get message faild.Error:" + tLQError.errstr); IL_C7: IL_C8: string result = string.Empty; bool flag5 = array != null; if (flag5) { result = encoding.GetString(array); } return(result); }
private void receiveData(SDKClient.IReceiver messageListener) { int num = 0; TLQError tLQError = default(TLQError); TLQMSG_INFO tLQMSG_INFO = default(TLQMSG_INFO); TLQMSG_OPT tLQMSG_OPT = default(TLQMSG_OPT); while (true) { byte[] bytes = null; TLQInterface.Tlq_InitMsgInfo(ref tLQMSG_INFO); TLQInterface.Tlq_InitMsgOpt(ref tLQMSG_OPT); tLQMSG_INFO.Persistence = 1; tLQMSG_OPT.QueName = this.rcvQueName; tLQMSG_OPT.AckMode = 1; tLQMSG_OPT.WaitInterval = this.pWaitInterval; while (true) { this.ret = TLQInterface.Tlq_GetMsg(ref this.gid, ref this.qcuId, ref tLQMSG_INFO, ref tLQMSG_OPT, ref bytes, ref tLQError); bool flag = this.ret < 0; if (!flag) { goto IL_FA; } num++; bool flag2 = num > 3; if (flag2) { goto Block_2; } this.ret = this.GetProcByTLQError(ref tLQError); bool flag3 = this.ret == 1; if (flag3) { this.ret = this.ReConnectToTLQ(); } else { bool flag4 = this.ret == 2; if (!flag4) { break; } } } continue; IL_FA: string @string = encoding.GetString(bytes); messageListener.receiveData(@string); } Block_2: throw new Exception("Receive message faild.Error:" + tLQError.errstr); }
public bool pubMessage(string message, int serviceType) { int num = 0; TLQMSG_INFO tLQMSG_INFO = default(TLQMSG_INFO); TLQMSG_OPT tLQMSG_OPT = default(TLQMSG_OPT); TLQError tLQError = default(TLQError); byte[] bytes = encoding.GetBytes(message); bool flag = this.cancelpubFlag == 0; if (flag) { TLQInterface.Tlq_InitMsgInfo(ref tLQMSG_INFO); TLQInterface.Tlq_InitMsgOpt(ref tLQMSG_OPT); tLQMSG_INFO.Persistence = 1; tLQMSG_INFO.Priority = 5; tLQMSG_INFO.Expiry = -1; tLQMSG_OPT.OperateType = 3; tLQMSG_OPT.PubSubScope = 3; tLQMSG_OPT.Topic = this.topicName; tLQMSG_INFO.MsgSize = bytes.Length; while (true) { int num2 = TLQInterface.Tlq_PutMsg(ref this.gid, ref this.qcuId, ref tLQMSG_INFO, ref tLQMSG_OPT, (IntPtr)0, bytes, ref tLQError); bool flag2 = num2 < 0; if (!flag2) { return(true); } num++; bool flag3 = num > 3; if (flag3) { break; } num2 = this.GetProcByTLQError(ref tLQError); bool flag4 = num2 == 2; if (!flag4) { bool flag5 = num2 == 1; if (!flag5) { goto IL_109; } num2 = this.ReConnectToTLQ(); } } throw new Exception("Send message faild.Error:" + tLQError.errstr); IL_109: throw new Exception("Send message faild.Error:" + tLQError.errstr); } throw new Exception("Pub flag is cancel"); }
public bool sendMessage(string message) { int num = 0; TLQMSG_INFO tLQMSG_INFO = default(TLQMSG_INFO); TLQMSG_OPT tLQMSG_OPT = default(TLQMSG_OPT); TLQError tLQError = default(TLQError); TLQInterface.Tlq_InitMsgInfo(ref tLQMSG_INFO); TLQInterface.Tlq_InitMsgOpt(ref tLQMSG_OPT); tLQMSG_INFO.MsgType = 0; tLQMSG_INFO.Persistence = 1; tLQMSG_INFO.Priority = 4; tLQMSG_INFO.Expiry = -1; tLQMSG_OPT.QueName = this.queueName; byte[] bytes = encoding.GetBytes(message); string @string = encoding.GetString(bytes); tLQMSG_INFO.MsgSize = encoding.GetByteCount(@string); while (true) { int num2 = TLQInterface.Tlq_PutMsg(ref this.gid, ref this.qcuId, ref tLQMSG_INFO, ref tLQMSG_OPT, (IntPtr)0, bytes, ref tLQError); bool flag = num2 < 0; if (!flag) { return(true); } num++; bool flag2 = num > 3; if (flag2) { break; } num2 = this.GetProcByTLQError(ref tLQError); bool flag3 = num2 == 2; if (!flag3) { bool flag4 = num2 == 1; if (!flag4) { goto IL_104; } num2 = this.ReConnectToTLQ(); } } throw new Exception("Send message faild.Error:" + tLQError.errstr); IL_104: throw new Exception("Send message faild.Error:" + tLQError.errstr); }
public void unSubscribe() { TLQMSG_INFO tLQMSG_INFO = default(TLQMSG_INFO); TLQMSG_OPT tLQMSG_OPT = default(TLQMSG_OPT); TLQError tLQError = default(TLQError); tLQMSG_INFO.CorrMsgId = this.CorrMsgId; tLQMSG_OPT.OperateType = 6; this.ret = TLQInterface.Tlq_PutMsg(ref this.gid, ref this.qcuId, ref tLQMSG_INFO, ref tLQMSG_OPT, (IntPtr)0, null, ref tLQError); bool flag = this.ret < 0; if (flag) { throw new Exception("Unsub topic faild.Error:" + tLQError.errstr); } }
/// <summary> /// 发送文件 /// </summary> /// <param name="filename"></param> private void SendFile(string filename) { TLQ_ID tlqId = new TLQ_ID(); bool online = tlqInterface.tlq_login(ref tlqId, ProgramNO, 0) >= 0; if (online) { // string filename = textBox1.Text;// "readme.txt"; TLQMSG_INFO msginfo = new TLQMSG_INFO(); msginfo.CompressFlag = 0;//1压缩,0不压缩 msginfo.Expiry = -1;//生命周期-1,为无限若Expiry>0, 要求发送消息的生命周期大于[system]中的核心检测周期TimeV msginfo.MsgLen = filename.Length;//消息的长度,若MsgType 为BUF_MSG 类型时,则为消息内容;若MsgType 为FILE_MSG 类型时,则为文件消息的文件名。 msginfo.MsgType = 1;//文件为1,数据报为0 msginfo.RemoveFileFlag = 1;//1删除原文件,0不删除 msginfo.CryptFlag = 0;//0不加密,1加密 msginfo.PriorNo = PriorNo;//配置的优先及 msginfo.QueName = QueName;//消息队列名 int ti = tlqInterface.tlq_putmsg(ref tlqId, ref msginfo, filename, 0); // MessageBox.Show(ti.ToString()); tlqInterface.tlq_logout(ref tlqId); } }
private void button6_Click(object sender, EventArgs e) { //TLQMSG_INFO msg = new TLQMSG_INFO(); //bool connected = false; // this get //Process myProcess = Process.GetProcessesByName("ChachMessage")[0]; //Process myProcess = Process.GetCurrentProcess(); //int thisid = myProcess.Id; //System.Windows.Forms.MessageBox.Show(myProcess.Id + ":" + myProcess.ProcessName); TLQ_ID tlqId = new TLQ_ID(); bool online = tlqInterface.tlq_login(ref tlqId, ProgramNO, 0) >= 0; if (online) { string filename = textBox1.Text;// "readme.txt"; TLQMSG_INFO msginfo = new TLQMSG_INFO(); msginfo.CompressFlag = 0;//1压缩,0不压缩 msginfo.Expiry = -1;//生命周期-1,为无限若Expiry>0, 要求发送消息的生命周期大于[system]中的核心检测周期TimeV msginfo.MsgLen = filename.Length;//消息的长度,若MsgType 为BUF_MSG 类型时,则为消息内容;若MsgType 为FILE_MSG 类型时,则为文件消息的文件名。 msginfo.MsgType = 1;//文件为1,数据报为0 msginfo.RemoveFileFlag = 1;//1删除原文件,0不删除 msginfo.CryptFlag = 0;//0不加密,1加密 msginfo.PriorNo = PriorNo;//配置的优先及 msginfo.QueName = QueName;//消息队列名 int ti = tlqInterface.tlq_putmsg(ref tlqId, ref msginfo, filename, 0); MessageBox.Show(ti.ToString()); tlqInterface.tlq_logout(ref tlqId); } }