public override void OnMessage(OnMessageAction callback, OnMessageOptions options) { if (this.factory.OpenConnection()) { if (this.session == null) { this.session = new Session(this.factory.Connection); this.link = new ReceiverLink(this.session, "amqp-receive-link " + this.Path, this.Path); } // start the message pump this.link.Start(1, (r, m) => { if (m != null) { BrokeredMessage brokeredMessage = new BrokeredMessage(m); callback(brokeredMessage); // if autocomplete requested if (options.AutoComplete) { r.Accept(m); } } }); } }
private void WebSocketServer_OnMessageReceive(object sender, OnMessageAction e) { PacketResponse HandledPacket = HandlePacket(e, JObject.Parse(e.Payload.PayloadString)); if (HandledPacket.ShouldSend) { e.Sender.Send(HandledPacket.Response, HandledPacket.Type); } }
private PacketResponse HandlePacket(OnMessageAction e, JObject packet) { string Type = packet["Type"].ToString(); PacketResponse Response = new PacketResponse { ShouldSend = false }; if (PacketManager.ContainsKey(Type)) { Console.WriteLine($"{e.Sender.Socket.ConnectedSocket.RemoteEndPoint} Sent packet with type: {Type}"); Response = PacketManager[Type](e, this, packet); } else { Console.WriteLine($"{e.Sender.Socket.ConnectedSocket.RemoteEndPoint} Sent packet containing unknown type: {Type}"); } return(Response); }
public override void OnMessage(OnMessageAction callback, OnMessageOptions options) { if (this.factory.OpenConnection()) { if (this.session == null) { this.session = new Session(this.factory.Connection); this.link = new ReceiverLink(this.session, "amqp-receive-link " + this.Path, this.Path); } // start the message pump this.link.Start(1, (r, m) => { if (m != null) { BrokeredMessage brokeredMessage = new BrokeredMessage(m); callback(brokeredMessage); // if autocomplete requested if (options.AutoComplete) r.Accept(m); } }); } }
/// <summary> /// Processes a message in an event-driven message pump /// </summary> /// <param name="callback">The method to invoke when the operation is complete</param> /// <param name="options">Options for the message pump</param> public abstract void OnMessage(OnMessageAction callback, OnMessageOptions options);
public void RemoveAction(OnMessageAction action) { m_Event -= action; }
public void AddAction(OnMessageAction action) { m_Event += action; }
/// <summary> /// Processes a message in an event-driven message pump /// </summary> /// <param name="callback">The method to invoke when the operation is complete</param> /// <param name="options">Options for the message pump</param> public void OnMessage(OnMessageAction callback, OnMessageOptions options) { this.CreateReceiver(); this.Receiver.OnMessage(callback, options); }
/// <summary> /// Processes a message in an event-driven message pump /// </summary> /// <param name="callback">The method to invoke when the operation is complete</param> public void OnMessage(OnMessageAction callback) { OnMessageOptions opions = new OnMessageOptions(); this.OnMessage(callback, opions); }
public void RemoveAction(OnMessageAction action) { m_Event -= action; // 如果方法里会用到self,可以使用xlua.util.bind:message:AddAction(bind(self.func, self)) }
public void AddAction(OnMessageAction action) { m_Event += action; // 把OnMessageAction加到LuaCallCSharp,就可以在lua侧直接message:AddAction(func)来添加方法 }