本文整理汇总了C#中NetMQMessage.RemoveFrame方法的典型用法代码示例。如果您正苦于以下问题:C# NetMQMessage.RemoveFrame方法的具体用法?C# NetMQMessage.RemoveFrame怎么用?C# NetMQMessage.RemoveFrame使用的例子?那么恭喜您, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类NetMQMessage
的用法示例。
在下文中一共展示了NetMQMessage.RemoveFrame方法的1个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C#代码示例。
示例1: ExtractRequest
/// <summary>
/// verifies if the message replied obeys the MDP 0.2 protocol
/// </summary>
/// <remarks>
/// socket strips [client adr][e] from message
/// message ->
/// [empty frame][protocol header][service name][requestId][reply]
/// [empty frame][protocol header][service name][result code of service lookup]
/// </remarks>
private Guid ExtractRequest(NetMQMessage reply)
{
if (reply.FrameCount < 4) // TODO Check if I need to change to 5 because of reqId!
throw new ApplicationException("[CLIENT ERROR] received a malformed reply");
var emptyFrame = reply.Pop();
if (emptyFrame != NetMQFrame.Empty)
{
throw new ApplicationException($"[CLIENT ERROR] received a malformed reply expected empty frame instead of: { emptyFrame } ");
}
var header = reply.Pop();
if (header.ConvertToString() != m_mdpClient)
throw new ApplicationException($"[CLIENT INFO] MDP Version mismatch: {header}");
var service = reply.Pop();
if (service.ConvertToString() != m_serviceName)
throw new ApplicationException($"[CLIENT INFO] answered by wrong service: {service.ConvertToString()}");
Guid requestId; // TODO: Not sure if requestId should be the last frame or the request itself...
var reqIdFrame = reply.Last;
reply.RemoveFrame(reqIdFrame);
if (!Guid.TryParse(reqIdFrame.ConvertToString(), out requestId) || requestId == Guid.Empty)
{
throw new ApplicationException($"[CLIENT INFO] RequestID was not retrieved");
}
return requestId;
}