在将邮件发送回客户端之前,有没有办法测试邮件的大小?我想在服务方面处理最大邮件大小配额。
答案 0 :(得分:1)
您可以编写自定义MessageEncoder
,在服务端使用它,并检查其WriteMessage
方法中的编码邮件大小。
关注this guide并以这种方式覆盖方法:
public override ArraySegment<byte> WriteMessage(Message message, int maxMessageSize, BufferManager bufferManager, int messageOffset)
{
var result = this.text.WriteMessage(message, maxMessageSize, bufferManager, messageOffset);
// Encoded message check logic.
Console.WriteLine("Message sent. Length=" + result.Count);
return result;
}
public override void WriteMessage(Message message, Stream stream)
{
var position = stream.Position;
this.text.WriteMessage(message, stream);
// Encoded message check logic.
Console.WriteLine("Message sent. Length=" + (stream.Position - position));
}