in src/main/csharp/Protocol/StompWireFormat.cs [157:221]
protected virtual Object CreateCommand(StompFrame frame)
{
string command = frame.Command;
if (Tracer.IsDebugEnabled)
{
Tracer.Debug("StompWireFormat - Received " + frame.ToString());
}
if(command == "RECEIPT")
{
string text = frame.RemoveProperty("receipt-id");
if(text != null)
{
Response answer = new Response();
if(text.StartsWith("ignore:"))
{
text = text.Substring("ignore:".Length);
}
answer.CorrelationId = Int32.Parse(text);
return answer;
}
}
else if(command == "CONNECTED")
{
return ReadConnected(frame);
}
else if(command == "ERROR")
{
string text = frame.RemoveProperty("receipt-id");
if(text != null && text.StartsWith("ignore:"))
{
Response answer = new Response();
answer.CorrelationId = Int32.Parse(text.Substring("ignore:".Length));
return answer;
}
else
{
ExceptionResponse answer = new ExceptionResponse();
if(text != null)
{
answer.CorrelationId = Int32.Parse(text);
}
BrokerError error = new BrokerError();
error.Message = frame.RemoveProperty("message");
answer.Exception = error;
return answer;
}
}
else if(command == "KEEPALIVE")
{
return new KeepAliveInfo();
}
else if(command == "MESSAGE")
{
return ReadMessage(frame);
}
Tracer.Error("Unknown command: " + frame.Command + " headers: " + frame.Properties);
return null;
}