aboutsummaryrefslogtreecommitdiff
path: root/SocketHttpListener/MessageEventArgs.cs
diff options
context:
space:
mode:
authorLuke Pulverenti <luke.pulverenti@gmail.com>2017-05-24 15:12:55 -0400
committerLuke Pulverenti <luke.pulverenti@gmail.com>2017-05-24 15:12:55 -0400
commitf07af448fa11330db93dd7ddcabac37ef9e014c7 (patch)
tree1b52a4f73d674a48258c2f14c94117b96ca4a678 /SocketHttpListener/MessageEventArgs.cs
parent27c3acb2bfde9025c33f584c759a4038020cb702 (diff)
update main projects
Diffstat (limited to 'SocketHttpListener/MessageEventArgs.cs')
-rw-r--r--SocketHttpListener/MessageEventArgs.cs96
1 files changed, 96 insertions, 0 deletions
diff --git a/SocketHttpListener/MessageEventArgs.cs b/SocketHttpListener/MessageEventArgs.cs
new file mode 100644
index 000000000..9dbadb9ab
--- /dev/null
+++ b/SocketHttpListener/MessageEventArgs.cs
@@ -0,0 +1,96 @@
+using System;
+using System.Text;
+
+namespace SocketHttpListener
+{
+ /// <summary>
+ /// Contains the event data associated with a <see cref="WebSocket.OnMessage"/> event.
+ /// </summary>
+ /// <remarks>
+ /// A <see cref="WebSocket.OnMessage"/> event occurs when the <see cref="WebSocket"/> receives
+ /// a text or binary data frame.
+ /// If you want to get the received data, you access the <see cref="MessageEventArgs.Data"/> or
+ /// <see cref="MessageEventArgs.RawData"/> property.
+ /// </remarks>
+ public class MessageEventArgs : EventArgs
+ {
+ #region Private Fields
+
+ private string _data;
+ private Opcode _opcode;
+ private byte[] _rawData;
+
+ #endregion
+
+ #region Internal Constructors
+
+ internal MessageEventArgs (Opcode opcode, byte[] data)
+ {
+ _opcode = opcode;
+ _rawData = data;
+ _data = convertToString (opcode, data);
+ }
+
+ internal MessageEventArgs (Opcode opcode, PayloadData payload)
+ {
+ _opcode = opcode;
+ _rawData = payload.ApplicationData;
+ _data = convertToString (opcode, _rawData);
+ }
+
+ #endregion
+
+ #region Public Properties
+
+ /// <summary>
+ /// Gets the received data as a <see cref="string"/>.
+ /// </summary>
+ /// <value>
+ /// A <see cref="string"/> that contains the received data.
+ /// </value>
+ public string Data {
+ get {
+ return _data;
+ }
+ }
+
+ /// <summary>
+ /// Gets the received data as an array of <see cref="byte"/>.
+ /// </summary>
+ /// <value>
+ /// An array of <see cref="byte"/> that contains the received data.
+ /// </value>
+ public byte [] RawData {
+ get {
+ return _rawData;
+ }
+ }
+
+ /// <summary>
+ /// Gets the type of the received data.
+ /// </summary>
+ /// <value>
+ /// One of the <see cref="Opcode"/> values, indicates the type of the received data.
+ /// </value>
+ public Opcode Type {
+ get {
+ return _opcode;
+ }
+ }
+
+ #endregion
+
+ #region Private Methods
+
+ private static string convertToString (Opcode opcode, byte [] data)
+ {
+ return data.Length == 0
+ ? String.Empty
+ : opcode == Opcode.Text
+ ? Encoding.UTF8.GetString (data, 0, data.Length)
+ : opcode.ToString ();
+ }
+
+ #endregion
+ }
+}