websocket-sharp-customheaders отправляют заголовки - PullRequest
0 голосов
/ 08 ноября 2019

Я установил пакет nuget websocket-sharp-customheaders для моего приложения WebSocket и хочу отправить sessionId внутри http-header-information. Код клиента:

public class SocketController
{
    public static readonly string ConnectionString = "ws://localhost:{0}/{1}";

    private string sessionId;

    public WebSocket NotificationSocket { get; private set; }

    public SocketController(ServiceConfiguration config)
    {
        NotificationSocket = new WebSocket(string.Format(ConnectionString, config.Port, "Notify"));
    }

    public void Connect()
    {
        NotificationSocket.Connect();
    }

    public void SendNotification(string sessionId, Notification data)
    {
        if (NotificationSocket.ReadyState == WebSocketState.Open)
        {
            NotificationSocket.CustomHeaders = new Dictionary<string, string> { { "SessionId", sessionId } };
            NotificationSocket.Send(data.SerializeJson());
        }
    }

    public void SetNotificationSocketOnMessage(Action<NotifyMessage> onMessage)
    {
        NotificationSocket.OnMessage += (sender, e) => onMessage(e.Data.DeserializeJson<NotifyMessage>());
    }

    public void Stop()
    {
        NotificationSocket.Close();
    }
}

В SendNotification установлен заголовок. Но сервер не получает информацию заголовка.

Поведение сокета сервера:

    public class NotifyService : WebSocketBehavior
    {
        protected override void OnMessage(MessageEventArgs e)
        {
            var command = e.Data;

            if (!Context.Headers.Contains("SessionId"))
                return;

            // Stuff todo with SessionId and Data
        }
    }

Может кто-нибудь сказать мне, как правильно отправлять информацию заголовка?

...