static void Main(string[] args) { //const string SkeletonStreamName = "skeleton"; //SkeletonStreamMessage skeletonStreamMessage;// = new SkeletonStreamMessage { stream = SkeletonStreamName }; KinectSensor kinectSensor = KinectSensor.GetDefault(); BodyFrameReader bodyFrameReader = null; bodyFrameReader = kinectSensor.BodyFrameSource.OpenReader(); ColorFrameReader colorFrameReader = null; colorFrameReader = kinectSensor.ColorFrameSource.OpenReader(); _coordinateMapper = kinectSensor.CoordinateMapper; kinectSensor.Open(); WebSocketServer server = new WebSocketServer("ws://localhost:8181"); server.Start(socket => { socket.OnOpen = () => { // Add the incoming connection to our list. clients.Add(socket); }; socket.OnClose = () => { // Remove the disconnected client from the list. clients.Remove(socket); }; socket.OnMessage = message => { if (message == "get-video") { int NUMBER_OF_FRAMES = new DirectoryInfo("Video").GetFiles().Length; // Send the video as a list of consecutive images. for (int index = 0; index < NUMBER_OF_FRAMES; index++) { foreach (var client in clients) { string path = "Video/" + index + ".jpg"; byte[] image = ImageUtil.ToByteArray(path); client.Send(image); } // We send 30 frames per second, so sleep for 34 milliseconds. System.Threading.Thread.Sleep(270); } } else if (message == "get-bodies") { if (kinectSensor.IsOpen) { if (bodyFrameReader != null) { bodyFrameReader.FrameArrived += bodyFrameReader_FrameArrived; } } } else if (message == "get-color") { if (kinectSensor.IsOpen) { if (colorFrameReader != null) { colorFrameReader.FrameArrived += colorFrameReader_FrameArrived; } } } }; }); // Wait for a key press to close... Console.ReadLine(); kinectSensor.Close(); }