1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65
|
// <copyright>
// Copyright (c) Microsoft Corporation. All rights reserved.
// </copyright>
namespace System.ServiceModel.Channels
{
using System.Collections.ObjectModel;
using System.Net.Http;
using System.Net.WebSockets;
public sealed class WebSocketMessageProperty
{
public const string Name = "WebSocketMessageProperty";
WebSocketContext context;
string subProtocol;
WebSocketMessageType messageType;
ReadOnlyDictionary<string, object> properties;
public WebSocketMessageProperty()
{
this.messageType = WebSocketDefaults.DefaultWebSocketMessageType;
}
internal WebSocketMessageProperty(WebSocketContext context, string subProtocol, WebSocketMessageType incomingMessageType, ReadOnlyDictionary<string, object> properties)
{
this.context = context;
this.subProtocol = subProtocol;
this.messageType = incomingMessageType;
this.properties = properties;
}
public WebSocketContext WebSocketContext
{
get { return this.context; }
}
public string SubProtocol
{
get { return this.subProtocol; }
}
public WebSocketMessageType MessageType
{
get { return this.messageType; }
set { this.messageType = value; }
}
public ReadOnlyDictionary<string, object> OpeningHandshakeProperties
{
get
{
if (this.properties == null)
{
throw FxTrace.Exception.AsError(new InvalidOperationException(SR.GetString(
SR.WebSocketOpeningHandshakePropertiesNotAvailable,
"RequestMessage",
typeof(HttpResponseMessage).Name,
typeof(DelegatingHandler).Name)));
}
return this.properties;
}
}
}
}
|