Example #1
0
    public static void Main (string [] args)
    {
      using (var nf = new Notifier ())
      using (var ws = new WebSocket ("ws://echo.websocket.org"))
      //using (var ws = new WebSocket ("wss://echo.websocket.org")) // For Secure Connection
      //using (var ws = new WebSocket ("ws://localhost:4649/Echo"))
      //using (var ws = new WebSocket ("wss://localhost:4649/Echo"))
      //using (var ws = new WebSocket ("ws://localhost:4649/Echo?name=nobita"))
      //using (var ws = new WebSocket ("ws://localhost:4649/Chat"))
      //using (var ws = new WebSocket ("wss://localhost:4649/Chat"))
      //using (var ws = new WebSocket ("ws://localhost:4649/Chat?name=nobita"))
      {
        /* Setting WebSocket events */
        ws.OnOpen += (sender, e) => ws.Send ("Hi, there!");

        ws.OnMessage += (sender, e) =>
          nf.Notify (
            new NotificationMessage {
              Summary = "WebSocket Message",
              Body = e.Data,
              Icon = "notification-message-im"
            });

        ws.OnError += (sender, e) =>
          nf.Notify (
            new NotificationMessage {
              Summary = "WebSocket Error",
              Body = e.Message,
              Icon = "notification-message-im"
            });

        ws.OnClose += (sender, e) =>
          nf.Notify (
            new NotificationMessage {
              Summary = String.Format ("WebSocket Close ({0})", e.Code),
              Body = e.Reason,
              Icon = "notification-message-im"
            });
         
#if DEBUG
        // Changing the logging level
        ws.Log.Level = LogLevel.Trace;
#endif
        // Setting Per-message Compression
        //ws.Compression = CompressionMethod.Deflate;

        /* For Secure Connection
        ws.ServerCertificateValidationCallback = (sender, certificate, chain, sslPolicyErrors) => {
          ws.Log.Debug (String.Format ("\n{0}\n{1}", certificate.Issuer, certificate.Subject));
          return true; // If the server cert is valid
        };
         */

        // For HTTP Authentication (Basic/Digest)
        //ws.SetCredentials ("nobita", "password", false);

        // Setting Origin header
        //ws.Origin = "http://echo.websocket.org";
        //ws.Origin = "http://localhost:4649";

        // Setting Cookies
        //ws.SetCookie (new Cookie ("name", "nobita"));
        //ws.SetCookie (new Cookie ("roles", "\"idiot, gunfighter\""));

        // Setting Proxy
        //ws.SetProxy ("http://localhost:3128", "nobita", "password");

        // Connecting to the server
        ws.Connect ();
        //ws.ConnectAsync ();

        Console.WriteLine ("\nType 'exit' to exit.\n");
        while (true) {
          Thread.Sleep (1000);
          Console.Write ("> ");
          var msg = Console.ReadLine ();
          if (msg == "exit")
            break;

          // Sending a text message
          ws.Send (msg);
        }
      }
    }
Example #2
0
        public static void Main(string[] args)
        {
            // Create a new instance of the WebSocket class.
              //
              // The WebSocket class inherits the System.IDisposable interface, so you can
              // use the using statement. And the WebSocket connection will be closed with
              // close status 1001 (going away) when the control leaves the using block.
              //
              // If you would like to connect to the server with the secure connection,
              // you should create a new instance with a wss scheme WebSocket URL.

              using (var nf = new Notifier ())
              using (var ws = new WebSocket ("ws://echo.websocket.org"))
              //using (var ws = new WebSocket ("wss://echo.websocket.org"))
              //using (var ws = new WebSocket ("ws://localhost:4649/Echo"))
              //using (var ws = new WebSocket ("wss://localhost:5963/Echo"))
              //using (var ws = new WebSocket ("ws://localhost:4649/Echo?name=nobita"))
              //using (var ws = new WebSocket ("wss://localhost:5963/Echo?name=nobita"))
              //using (var ws = new WebSocket ("ws://localhost:4649/Chat"))
              //using (var ws = new WebSocket ("wss://localhost:5963/Chat"))
              //using (var ws = new WebSocket ("ws://localhost:4649/Chat?name=nobita"))
              //using (var ws = new WebSocket ("wss://localhost:5963/Chat?name=nobita"))
              {
            // Set the WebSocket events.

            ws.OnOpen += (sender, e) => ws.Send ("Hi, there!");

            ws.OnMessage += (sender, e) =>
            nf.Notify (
              new NotificationMessage {
                Summary = "WebSocket Message",
                Body = !e.IsPing ? e.Data : "Received a ping.",
                Icon = "notification-message-im"
              }
            );

            ws.OnError += (sender, e) =>
            nf.Notify (
              new NotificationMessage {
                Summary = "WebSocket Error",
                Body = e.Message,
                Icon = "notification-message-im"
              }
            );

            ws.OnClose += (sender, e) =>
            nf.Notify (
              new NotificationMessage {
                Summary = String.Format ("WebSocket Close ({0})", e.Code),
                Body = e.Reason,
                Icon = "notification-message-im"
              }
            );
            #if DEBUG
            // To change the logging level.
            ws.Log.Level = LogLevel.Trace;

            // To change the wait time for the response to the Ping or Close.
            //ws.WaitTime = TimeSpan.FromSeconds (10);

            // To emit a WebSocket.OnMessage event when receives a ping.
            //ws.EmitOnPing = true;
            #endif
            // To enable the Per-message Compression extension.
            //ws.Compression = CompressionMethod.Deflate;

            // To validate the server certificate.
            /*
            ws.SslConfiguration.ServerCertificateValidationCallback =
              (sender, certificate, chain, sslPolicyErrors) => {
            ws.Log.Debug (
              String.Format (
                "Certificate:\n- Issuer: {0}\n- Subject: {1}",
                certificate.Issuer,
                certificate.Subject
              )
            );

            return true; // If the server certificate is valid.
              };
             */

            // To send the credentials for the HTTP Authentication (Basic/Digest).
            //ws.SetCredentials ("nobita", "password", false);

            // To send the Origin header.
            //ws.Origin = "http://localhost:4649";

            // To send the cookies.
            //ws.SetCookie (new Cookie ("name", "nobita"));
            //ws.SetCookie (new Cookie ("roles", "\"idiot, gunfighter\""));

            // To connect through the HTTP Proxy server.
            //ws.SetProxy ("http://localhost:3128", "nobita", "password");

            // To enable the redirection.
            //ws.EnableRedirection = true;

            // Connect to the server.
            ws.Connect ();

            // Connect to the server asynchronously.
            //ws.ConnectAsync ();

            Console.WriteLine ("\nType 'exit' to exit.\n");
            while (true) {
              Thread.Sleep (1000);
              Console.Write ("> ");
              var msg = Console.ReadLine ();
              if (msg == "exit")
            break;

              // Send a text message.
              ws.Send (msg);
            }
              }
        }
Example #3
0
        public static void Main(string[] args)
        {
            // Create a new instance of the WebSocket class.
            //
            // The WebSocket class inherits the System.IDisposable interface, so you can
            // use the using statement. And the WebSocket connection will be closed with
            // close status 1001 (going away) when the control leaves the using block.
            //
            // If you would like to connect to a server with the secure connection,
            // you should create a new instance with a wss scheme WebSocket URL.

            using (var nf = new Notifier())
                using (var ws = new WebSocket("ws://echo.websocket.org"))
                //using (var ws = new WebSocket ("wss://echo.websocket.org"))
                //using (var ws = new WebSocket ("ws://localhost:4649/Echo"))
                //using (var ws = new WebSocket ("wss://localhost:5963/Echo"))
                //using (var ws = new WebSocket ("ws://localhost:4649/Echo?name=nobita"))
                //using (var ws = new WebSocket ("wss://localhost:5963/Echo?name=nobita"))
                //using (var ws = new WebSocket ("ws://localhost:4649/Chat"))
                //using (var ws = new WebSocket ("wss://localhost:5963/Chat"))
                //using (var ws = new WebSocket ("ws://localhost:4649/Chat?name=nobita"))
                //using (var ws = new WebSocket ("wss://localhost:5963/Chat?name=nobita"))
                {
                    // Set the WebSocket events.

                    ws.OnOpen += (sender, e) => ws.Send("Hi, there!");

                    ws.OnMessage += (sender, e) =>
                                    nf.Notify(
                        new NotificationMessage {
                        Summary = "WebSocket Message",
                        Body    = !e.IsPing ? e.Data : "Received a ping.",
                        Icon    = "notification-message-im"
                    }
                        );

                    ws.OnError += (sender, e) =>
                                  nf.Notify(
                        new NotificationMessage {
                        Summary = "WebSocket Error",
                        Body    = e.Message,
                        Icon    = "notification-message-im"
                    }
                        );

                    ws.OnClose += (sender, e) =>
                                  nf.Notify(
                        new NotificationMessage {
                        Summary = String.Format("WebSocket Close ({0})", e.Code),
                        Body    = e.Reason,
                        Icon    = "notification-message-im"
                    }
                        );
#if DEBUG
                    // To change the logging level.
                    ws.Log.Level = LogLevel.Trace;

                    // To change the wait time for the response to the Ping or Close.
                    //ws.WaitTime = TimeSpan.FromSeconds (10);

                    // To emit a WebSocket.OnMessage event when receives a ping.
                    //ws.EmitOnPing = true;

                    // To enable the redirection.
                    //ws.EnableRedirection = true;
#endif
                    // To enable the Per-message Compression extension.
                    //ws.Compression = CompressionMethod.Deflate;

                    /* To validate the server certificate.
                     * ws.SslConfiguration.ServerCertificateValidationCallback =
                     * (sender, certificate, chain, sslPolicyErrors) => {
                     *  ws.Log.Debug (
                     *    String.Format (
                     *      "Certificate:\n- Issuer: {0}\n- Subject: {1}",
                     *      certificate.Issuer,
                     *      certificate.Subject
                     *    )
                     *  );
                     *
                     *  return true; // If the server certificate is valid.
                     * };
                     */

                    // To send the credentials for the HTTP Authentication (Basic/Digest).
                    //ws.SetCredentials ("nobita", "password", false);

                    // To send the Origin header.
                    //ws.Origin = "http://localhost:4649";

                    // To send the cookies.
                    //ws.SetCookie (new Cookie ("name", "nobita"));
                    //ws.SetCookie (new Cookie ("roles", "\"idiot, gunfighter\""));

                    // To connect through the HTTP Proxy server.
                    //ws.SetProxy ("http://localhost:3128", "nobita", "password");

                    // Connect to the server.
                    ws.Connect();

                    // Connect to the server asynchronously.
                    //ws.ConnectAsync ();

                    Console.WriteLine("\nType 'exit' to exit.\n");
                    while (true)
                    {
                        Thread.Sleep(1000);
                        Console.Write("> ");
                        var msg = Console.ReadLine();
                        if (msg == "exit")
                        {
                            break;
                        }

                        // Send a text message.
                        ws.Send(msg);
                    }
                }
        }