WebSocketReceiveResult 强制接收二进制

WebSocketReceiveResult force to receive binary

我正在使用 Websocket.Client,它是 ClientWebSocket 的包装器,在其内部我可以看到 WebSocketReceiveResult 并且它正在使用它来检测消息内容 result.MessageType == WebSocketMessageType.Text .

有什么方法可以强制 web socker 接收二进制消息(不做任何字符串转换?),还是服务器指定的数据格式?

namespace Websocket.Client
{
    //
    // Summary:
    //     Received message, could be Text or Binary
    public class ResponseMessage
    {
        //
        // Summary:
        //     Received text message (only if type = WebSocketMessageType.Text)
        public string Text { get; }
        //
        // Summary:
        //     Received text message (only if type = WebSocketMessageType.Binary)
        public byte[] Binary { get; }
        //
        // Summary:
        //     Current message type (Text or Binary)
        public WebSocketMessageType MessageType { get; }

        //
        // Summary:
        //     Create binary response message
        public static ResponseMessage BinaryMessage(byte[] data);
        //
        // Summary:
        //     Create text response message
        public static ResponseMessage TextMessage(string data);
        //
        // Summary:
        //     Return string info about the message
        public override string ToString();
    }
}

此功能由 Websocket.Client 的作者在 github 页面上发布后的几个小时内实现...太棒了!

using var client = new WebsocketClient()
{
   IsTextMessageConversionEnabled = false
};