private static void Consumer_Listener(IMessage message, TextMessageHandler messageHandler) { if (message is ActiveMQTextMessage && messageHandler != null) { ActiveMQTextMessage actualMessage = (ActiveMQTextMessage)message; messageHandler(actualMessage.Text, message); } }
public static void ConfigureListener(ref MessageConsumer consumer, TextMessageHandler handler) { consumer.Stop(); consumer.ConsumerInfo.Retroactive = false; consumer.Listener += (message) => Consumer_Listener(message, handler); consumer.Start(); }
/// <summary> /// 解析消息并执行相应逻辑 /// </summary> /// <param name="msgStr">微信post过来的消息数据,xml格式</param> /// <returns>回复给用户的消息,将使用客服接口进行回复</returns> /// <exception cref="NotSupportedException"></exception> public static string ParseAndExecute(string msgStr) { var msgbase = Xml.Net.XmlConvert.DeserializeObject <MessageBase>(msgStr); IWxMsgHandler handler; switch (msgbase.MsgType) { case "text": // 文本消息 handler = new TextMessageHandler( ); break; case "image": // 图片消息 handler = new ImageMessageHandler( ); break; case "voice": // 语言消息 handler = new VoiceMessageHandler( ); break; case "video": // 视频消息 handler = new VideoMessageHandler( ); break; case "shortvideo": // 小视频消息 handler = new ShortVideoMessageHandler( ); break; case "location": // 地理位置消息 handler = new LocationMessageHandler( ); break; case "link": // 链接消息 handler = new LinkMessageHandler( ); break; case "event": // 事件 return(ParseEvent(msgStr)); default: throw new System.NotSupportedException("不支持的消息类型: " + msgbase.MsgType); } return(handler.Handle(msgStr)); }
public void Trigger(TextMessageHandler messageHandler = null) { if(messageHandler != null && m_Subtitles != null ) { if (m_Line != null) m_Time = m_Line.length; if(m_Time > 0) messageHandler.Dialog(m_Subtitles, m_Time); } if (m_Source != null && m_Line != null) { m_Source.clip = m_Line; m_Source.Play(); } }
public void Write(string text) { if (_mainForm == null) { return; } if (_mainForm.InvokeRequired) { TextMessageHandler handler = new TextMessageHandler( _mainForm.ProgressText); _mainForm.Invoke(handler, new object[] { text }); } else { _mainForm.ProgressText(text); } }
async void BeginReceiveMessages() { isReceiving = true; while (isReceiving && client.State == WebSocketState.Open) { WebSocketReceiveResult receiveResult = null; using (var ms = new MemoryStream()) { do { receiveResult = await client.ReceiveAsync(clientBuffer, CancellationToken.None); ms.Write(clientBuffer.Array, clientBuffer.Offset, receiveResult.Count); }while (!receiveResult.EndOfMessage); ms.Seek(0, SeekOrigin.Begin); // close socket if requested by server, return if (receiveResult.MessageType == WebSocketMessageType.Close) { await CloseSocket(receiveResult.CloseStatusDescription); return; } if (receiveResult.MessageType == WebSocketMessageType.Binary) { BinaryMessageHandler?.OnMessageReceived(ms); } else if (receiveResult.MessageType == WebSocketMessageType.Text) { TextMessageHandler?.OnMessageReceived(ms); } } } }
public void Add(TextMessageHandlerCondition condition, TextMessageHandler handler) => Add(new BotCommand { Condition = condition, Handler = handler });