source: other-projects/playing-in-the-street/summer-2013/trunk/Microsoft.Samples.Kinect.Webserver/WebSocketMessageExtensions.cs@ 28896

Last change on this file since 28896 was 28896, checked in by davidb, 10 years ago

Core Web Server that connects to the Kinect device

File size: 2.6 KB
Line 
1// -----------------------------------------------------------------------
2// <copyright file="WebSocketMessageExtensions.cs" company="Microsoft">
3// Copyright (c) Microsoft Corporation. All rights reserved.
4// </copyright>
5// -----------------------------------------------------------------------
6
7namespace Microsoft.Samples.Kinect.Webserver
8{
9 using System;
10 using System.IO;
11 using System.Net.WebSockets;
12
13 /// <summary>
14 /// Static class that defines extensions used to serialize objects into web socket messages.
15 /// </summary>
16 public static class WebSocketMessageExtensions
17 {
18 /// <summary>
19 /// Serializes object as a UTF8-encoded JSON string and creates a web socket message to
20 /// be sent over the wire.
21 /// </summary>
22 /// <typeparam name="T">
23 /// Type of object to serialize and send as a message.
24 /// </typeparam>
25 /// <param name="obj">
26 /// Object to serialize and send as a message.
27 /// </param>
28 /// <returns>
29 /// Web socket message ready to be sent.
30 /// </returns>
31 public static WebSocketMessage ToTextMessage<T>(this T obj)
32 {
33 using (var stream = new MemoryStream())
34 {
35 obj.ToJson(stream);
36 return new WebSocketMessage(new ArraySegment<byte>(stream.GetBuffer(), 0, (int)stream.Length), WebSocketMessageType.Text);
37 }
38 }
39
40 /// <summary>
41 /// Takes an array of bytes representing UTF8-encoded text and creates a web socket message
42 /// to be sent over the wire.
43 /// </summary>
44 /// <param name="textData">
45 /// Array of bytes representing UTF8-encoded text.
46 /// </param>
47 /// <returns>
48 /// Web socket message ready to be sent.
49 /// </returns>
50 public static WebSocketMessage ToTextMessage(this byte[] textData)
51 {
52 return new WebSocketMessage(new ArraySegment<byte>(textData), WebSocketMessageType.Text);
53 }
54
55 /// <summary>
56 /// Takes an array of bytes representing binary data and creates a web socket message
57 /// to be sent over the wire.
58 /// </summary>
59 /// <param name="data">
60 /// Array of bytes representing binary data.
61 /// </param>
62 /// <returns>
63 /// Web socket message ready to be sent.
64 /// </returns>
65 public static WebSocketMessage ToBinaryMessage(this byte[] data)
66 {
67 return new WebSocketMessage(new ArraySegment<byte>(data), WebSocketMessageType.Binary);
68 }
69 }
70}
Note: See TracBrowser for help on using the repository browser.