/// <summary> /// Send a Ping message to determine agent liveness. /// </summary> /// <returns>A Pong message or null if conection failed.</returns> public NetPong Ping() { if (IsClosed()) { return(null); } NetPong localNetPong = null; string actionId = Guid.NewGuid().ToString(); NetPing ping = new NetPing(actionId); NetAction action = new NetAction(NetAction.ActionType.PING); action.PingMessage = ping; NetMessage netMessage = new NetMessage(action); ManualResetEvent mrEvent = new ManualResetEvent(false); PongHandler handler = delegate(NetPong pong) { if (pong.ActionId.Equals(actionId)) { localNetPong = pong; mrEvent.Set(); } }; protocolHandler.OnPong += handler; protocolHandler.HandleOutgoingMessage(netMessage, null); mrEvent.WaitOne(2 * 1000, false); protocolHandler.OnPong -= handler; return(localNetPong); }
private static NetPong getPongMessage(Atom atom) { NetPong pong = new NetPong(atom.Action.Pong.Action_id); return(pong); }
private static NetPong getPongMessage(Atom atom) { NetPong pong = new NetPong(atom.Action.Pong.Action_id); return pong; }