public Pi2GoWebSocketServer(IPi2GoLiteRobot robot, int port, IImageCapture imageCapture = null, TextWriter traceWriter = null)
        {
            state = new Pi2GoLiteState();

            webSocket = new WebSocketSharp.Server.WebSocketServer(port);
            webSocket.AddWebSocketService(pathOperations, () => new WebSocketOperationMessageReceiver(robot, state)
            {
                TraceWriter = traceWriter
            });

            if (imageCapture != null)
            {
                webSocket.AddWebSocketService(pathImages, () => new WebSocketImageMessageSender(imageCapture));
            }

            webSocket.Start();
        }
 internal WebSocketOperationMessageReceiver(IPi2GoLiteRobot robot, Pi2GoLiteState state)
 {
     this.robot = robot;
     this.state = state;
 }