Ejemplo n.º 1
0
        public async Task <IActionResult> CreateAsync([FromBody] MessageViewModel message)
        {
            //messages breaking here
            Message newMessage = new Message {
                SentBy = _userManager.GetUserName(User), Messages = message.message, GroupId = message.GroupId
            };

            _context.Message.Add(newMessage);
            _context.SaveChanges();
            var options = new PusherOptions
            {
                Cluster   = "us3",
                Encrypted = true
            };
            var pusher = new Pusher(
                "1088226",
                "a8e8c58dc5d53b967a82",
                "a320be2396ef5924f1ed",
                options
                );
            var result = await pusher.TriggerAsync(
                "private-" + message.GroupId,
                "new_message",
                new { newMessage },
                new TriggerOptions()
            {
                SocketId = message.SocketId
            });

            return(new ObjectResult(new { status = "success", data = newMessage }));
        }
        public async Task <IActionResult> CreateAsync([FromBody] MessageViewModel message)
        {
            Message new_message = new Message {
                AddedBy = _userManager.GetUserName(User), message = message.message, GroupId = message.GroupId
            };

            _context.Message.Add(new_message);
            _context.SaveChanges();

            // Triggering an event when a new message is received - where to put?
            var options = new PusherOptions
            {
                Cluster   = API_KEYS.pusherAppCluster,
                Encrypted = true
            };
            var pusher = new Pusher(
                API_KEYS.pusherAppId,
                API_KEYS.pusherAppKey,
                API_KEYS.pusherAppSecret,
                options
                );
            var result = await pusher.TriggerAsync(
                "private-" + message.GroupId,
                "new_message",
                new { new_message },
                new TriggerOptions()
            {
                SocketId = message.SocketId
            });

            return(new ObjectResult(new { status = "success", data = new_message }));
        }
        public async Task <ActionResult> CadastroGastosModalPessoas(Gastos gasto)
        {
            int id = Convert.ToInt32(Session["user"].ToString());

            int deuCerto = new RepositorioGastos().CadastrarGastos(gasto, id);


            var options = new PusherOptions
            {
                Cluster   = "us2",
                Encrypted = true
            };

            var pusher = new Pusher(
                "604342",
                "3d2e47e4a257a668b2cc",
                "65922eb9b246a4faa9a5",
                options);

            var result = await pusher.TriggerAsync(
                "my-channel",
                "cadastroGastos",
                new { message = "hello world" });

            return(Content(JsonConvert.SerializeObject(new { gasto })));
        }
Ejemplo n.º 4
0
        public ActionResult Typing()
        {
            string typer     = Request.Form["typer"];
            string socket_id = Request.Form["socket_id"];


            var options = new PusherOptions();

            options.Cluster = "PUSHER_APP_CLUSTER";

            var pusher = new Pusher(
                "PUSHER_APP_ID",
                "PUSHER_APP_KEY",
                "PUSHER_APP_SECRET", options);

            pusher.TriggerAsync(
                "chat",
                "typing",
                new { typer = typer },
                new TriggerOptions()
            {
                SocketId = socket_id
            });

            return(new HttpStatusCodeResult(200));
        }
Ejemplo n.º 5
0
        public JsonResult AuthForChannel(string channel_name, string socket_id)
        {
            var currentUser = db.UsuariosAsps.Where(u => u.UserName == User.Identity.Name)
                              .ToList()[0];

            var options = new PusherOptions();

            options.Cluster = "us2";

            var pusher = new Pusher(
                "530632",
                "ed5c2354a385822ffe87",
                "0314372fa7f33ce2837a", options);

            if (channel_name.IndexOf(currentUser.Id.ToString()) == -1)
            {
                return(Json(
                           new { status = "error", message = "User cannot join channel" }
                           ));
            }

            var auth = pusher.Authenticate(channel_name, socket_id);

            return(Json(auth));
        }
Ejemplo n.º 6
0
        public async Task <ActionResult> AddMessage([FromBody] AddMessage message)
        {
            var sd  = message;
            var yup = _conversationService.addMessage(message.userIdSend, message.conversationId, message.message);

            if (yup == true)
            {
                var options = new PusherOptions
                {
                    Cluster   = "eu",
                    Encrypted = true
                };

                var pusher = new Pusher(
                    "975390",
                    "35935d17e4b0feaca33b",
                    "157278f5b673fba840a3",
                    options);

                await pusher.TriggerAsync(
                    message.messageChannel,
                    "my-chat-" + message.conversationId,
                    new { message = message.message, userIdSend = message.userIdSend, userId = message.userId, conversationId = message.conversationId });

                //              await pusher.TriggerAsync(
                //"my-channel",
                //"my-event",
                //new { message = message.message, userIdSend = message.userIdSend, conversationId = message.conversationId });
                return(Ok());
            }
            return(Ok());
        }
Ejemplo n.º 7
0
        public JsonResult AuthForChannel(string channel_name, string socket_id)
        {
            if (Session["user"] == null)
            {
                return(Json(new { status = "error", message = "User is not logged in" }));
            }

            var currentUser = (Models.User)Session["user"];

            var channelData = new PresenceChannelData()
            {
                user_id   = currentUser.id.ToString(),
                user_info = new {
                    id   = currentUser.id,
                    name = currentUser.name
                },
            };

            var options = new PusherOptions();

            options.Cluster = "PUSHER_APP_CLUSTER";

            var pusher = new Pusher(
                "PUSHER_APP_ID",
                "PUSHER_APP_KEY",
                "PUSHER_APP_SECRET", options);

            var auth = pusher.Authenticate(channel_name, socket_id, channelData);

            return(Json(auth));
        }
Ejemplo n.º 8
0
        public async Task <IActionResult> Chat(string id, bool id2 = false)
        {
            var options = new PusherOptions
            {
                Encrypted = true,
                Cluster   = Globals.PusherCluster
            };
            var pusher = new Pusher(Globals.PusherAppId, Globals.PusherKey, Globals.PusherSecret, options);

            if (id2)
            {
                var data = new { username = id, message = NoteDataManager.GetSafeUserDisplayName(_userManager, User, _db) + " wants to chat with you." };
                await pusher.TriggerAsync("presence-channel", "chat_request_event", data);
            }
            else
            {
                var data = new { username = NoteDataManager.GetSafeUserDisplayName(_userManager, User, _db), message = "<<HAS ARRIVED TO CHAT>>" };
                await pusher.TriggerAsync("private-notes-chat-" + id, "show_chat_message_event", data);
            }


            ViewData["ChatFrom"] = NoteDataManager.GetSafeUserDisplayName(_userManager, User, _db); // me
            ViewData["ChatTo"]   = id;                                                              // chat target
            return(View());
        }
Ejemplo n.º 9
0
        public async Task <ActionResult> NewChat([FromBody] ChatDto chatDto)
        {
            var chat = _chatRepository.SaveChat(chatDto);

            var options = new PusherOptions
            {
                Cluster   = "ap1",
                Encrypted = true
            };

            var pusher = new Pusher(
                "957914",
                "0a3b3bc361a655ea56ac",
                "1a2506af120a04af2906",
                options);

            var result = await pusher.TriggerAsync(
                chatDto.LectureId.ToString(),
                "my-event",
                new
            {
                userName = chatDto.UserName,
                message  = chatDto.Message,
                dateTime = chat.DateTime
            });

            return(Ok(result));
        }
        public ActionResult Typing()
        {
            string typer     = Request.Form["typer"];
            string socket_id = Request.Form["socket_id"];


            var options = new PusherOptions();

            options.Cluster = "Pusher_APP_CLUSTER";

            var pusher = new Pusher(
                "749662",
                "e04ac7f428b64a8d05fc",
                "30a8ef6697dbb7c507b2",
                options);

            pusher.TriggerAsync(
                "chat",
                "typing",
                new { typer = typer },
                new TriggerOptions()
            {
                SocketId = socket_id
            });

            return(new HttpStatusCodeResult(200));
        }
Ejemplo n.º 11
0
        public async Task <IActionResult> Create([FromBody] MessageViewModel message)
        {
            Message new_message = new Message {
                AddedBy = _userManager.GetUserName(User), message = message.message, GroupId = message.GroupId
            };

            _context.Message.Add(new_message);
            _context.SaveChanges();


            var options = new PusherOptions
            {
                Cluster   = "eu",
                Encrypted = true
            };
            var pusher = new Pusher(
                "733746",
                "2197134b840b0f51ef40",
                "6d3361985f6d36d29def",
                options
                );

            var result = await pusher.TriggerAsync(
                "private-" + message.GroupId,
                "new_message",
                new { new_message },
                new TriggerOptions()
            {
                SocketId = message.SocketId
            });

            return(new ObjectResult(new { status = "success", data = new_message }));
        }
Ejemplo n.º 12
0
        public IActionResult Create([FromBody] MessageViewModel message)
        {
            Message new_message = new Message {
                AddedBy = _userManager.GetUserName(User), message = message.message, GroupId = message.GroupId
            };

            _context.Message.Add(new_message);
            _context.SaveChanges();

            var options = new PusherOptions
            {
                Cluster   = "us2",
                Encrypted = true
            };

            var pusher = new Pusher(
                "844329",
                "853fd35bbcb701bd665b",
                "2969f417aa1e79477afe",
                options
                );

            var result = pusher.TriggerAsync(
                "private-" + message.GroupId,
                "new_message",
                new { new_message },
                new TriggerOptions()
            {
                SocketId = message.SocketId
            });

            return(new ObjectResult(new { status = "success", data = new_message }));
        }
Ejemplo n.º 13
0
        public ActionResult Typing()
        {
            string typer     = Request.Form["typer"];
            string socket_id = Request.Form["socket_id"];

            var options = new PusherOptions
            {
                Cluster   = "ap1",
                Encrypted = true
            };

            var pusher = new Pusher(
                "548750",
                "8c290a9d0ed6bbacf5c5",
                "68ca4df8504b827cc9bc",
                options);


            pusher.TriggerAsync(
                "chat",
                "typing",
                new { typer = typer },
                new TriggerOptions()
            {
                SocketId = socket_id
            });



            return(new HttpStatusCodeResult((int)HttpStatusCode.OK));
        }
Ejemplo n.º 14
0
        public JsonResult AuthForChannel(string channel_name, string socket_id)
        {
            ApplicationDbContext db = new ApplicationDbContext();
            string userId           = User.Identity.GetUserId();
            var    currentUser      = db.Musicians.Where(u => u.UserId == userId).First();

            if (currentUser == null)
            {
                return(Json(new { status = "error", message = "User is not logged in" }));
            }


            var options = new PusherOptions();

            options.Cluster = APIUtility.PusherCluster;

            var pusher = new Pusher(
                APIUtility.PusherAppId,
                APIUtility.PusherKey,
                APIUtility.PusherSecretKey, options);

            //if (channel_name.IndexOf(currentUser.id.ToString()) == -1)
            //{
            //    return Json(
            //      new { status = "error", message = "User cannot join channel" }
            //    );
            //}

            var auth = pusher.Authenticate(channel_name, socket_id);

            return(Json(auth));
        }
Ejemplo n.º 15
0
        public async Task <IActionResult> Create([FromBody] MessageViewModel message)
        {
            Message new_message = new Message {
                AddedBy = _userManager.GetUserName(User), ChatMessage = message.message, GroupId = message.GroupId
            };

            _context.Messages.Add(new_message);
            _context.SaveChanges();

            var options = new PusherOptions
            {
                Cluster   = "mt1",
                Encrypted = true
            };
            var pusher = new Pusher(
                "671063",
                "016b0a9c29ee69a1c1e0",
                "67c82f7eec24bfba97ed",
                options
                );
            var result = await pusher.TriggerAsync(
                "private-" + message.GroupId,
                "new_message",
                new { new_message },
                new TriggerOptions()
            {
                SocketId = message.SocketId
            });

            return(new ObjectResult(new { status = "success", data = new_message }));
        }
Ejemplo n.º 16
0
        public MapController()
        {
            var options = new PusherOptions();

            options.Cluster = "app-cluster";
            pusher          = new Pusher("id", "key", "secretKey", options);
        }
Ejemplo n.º 17
0
        public async Task <IActionResult> Index()
        {
            ViewBag.Username = HttpContext.Session.GetString("username");

            var visitors = 0;

            if (System.IO.File.Exists("visitors.txt"))
            {
                string noOfVisitors = System.IO.File.ReadAllText("visitors.txt");
                visitors = Int32.Parse(noOfVisitors);
            }
            ++visitors;
            var visit_text = (visitors == 1) ? " view" : " views";

            System.IO.File.WriteAllText("visitors.txt", visitors.ToString());

            ViewData["visitors"]     = visitors;
            ViewData["visitors_txt"] = visit_text;
            var options = new PusherOptions();

            options.Cluster = "PUSHER_APP_CLUSTER";

            var pusher = new Pusher(
                "PUSHER_APP_ID",
                "PUSHER_APP_KEY",
                "PUSHER_APP_SECRET", options);

            pusher.TriggerAsync(
                "general",
                "newVisit",
                new { visits = visitors.ToString(), message = visit_text });

            return(View());
        }
Ejemplo n.º 18
0
        public async void UpdateRoom(RoomMembers roomMember)
        {
            var roomFromDb = _db.Room.Where(r => r.ID == roomMember.Room.ID).FirstOrDefault();

            roomFromDb.CurrentTime  = roomMember.Room.CurrentTime;
            roomFromDb.PlayTheMovie = roomMember.Room.PlayTheMovie;

            _db.SaveChanges();

            var options = new PusherOptions
            {
                Cluster   = "eu",
                Encrypted = true
            };
            var pusher = new Pusher(
                "1126876",
                "07088996639e59625df1",
                "588dfb9942c061b04ff6",
                options
                );

            var result = await pusher.TriggerAsync(
                roomMember.Room.ID.ToString(),
                "video_parameters_changed",
                new { roomMember },
                new TriggerOptions()
            {
            });
        }
Ejemplo n.º 19
0
        public IActionResult Create([FromBody] MessageViewModel message)
        {
            Message new_message = new Message
            {
                AddedBy = _userManager.GetUserName(User), message = message.message, GroupId = message.GroupId
            };

            _context.Messages.Add(new_message);
            _context.SaveChanges();

            var options = new PusherOptions
            {
                Cluster   = _configuration["PUSHER_APP_CLUSTER"],
                Encrypted = true
            };
            var pusher = new Pusher(
                _configuration["PUSHER_APP_ID"],
                _configuration["PUSHER_APP_KEY"],
                _configuration["PUSHER_APP_SECRET"],
                options
                );
            var result = pusher.TriggerAsync(
                "private-" + message.GroupId,
                "new_message",
                new { new_message },
                new TriggerOptions()
            {
                SocketId = message.SocketId
            });

            return(new ObjectResult(new { status = "success", data = new_message }));
        }
Ejemplo n.º 20
0
        private async void Enviar()
        {
            if (String.IsNullOrEmpty(txtContratado.Text.Trim()) || String.IsNullOrEmpty(txtDemitido.Text.Trim()))
            {
                MessageBox.Show("Informe o nome do Contratado e do Demitido!", "Atenção", MessageBoxButtons.OK, MessageBoxIcon.Warning);
                return;
            }

            try
            {
                var options = new PusherOptions {
                    Cluster = "us2", Encrypted = true
                };

                var config = GetConfig();
                var pusher = new Pusher(config["pusher_app_id"], config["pusher_app_key"], config["pusher_app_secret"], options);

                var channel = config["pusher_app_channel"];

                await pusher.TriggerAsync(channel, "lista-contratados", new { contratado = txtContratado.Text.ToUpper() });

                await pusher.TriggerAsync(channel, "lista-demitidos", new { demitido = txtDemitido.Text.ToUpper() });
            }
            catch (Exception e)
            {
                MessageBox.Show("Não foi possível enviar!", "Atenção", MessageBoxButtons.OK, MessageBoxIcon.Error);
            }
        }
Ejemplo n.º 21
0
        public async Task <IActionResult> CreateAsync([FromBody] MessageViewModel message)
        {
            Message new_message = new Message {
                AddedBy = _userManager.GetUserName(User), message = message.message, GroupId = message.GroupId
            };

            _context.Message.Add(new_message);
            _context.SaveChanges();
            var options = new PusherOptions
            {
                Cluster   = "us2",
                Encrypted = true
            };
            var pusher = new Pusher(
                "620160",
                "87c7848afc7bbeaf081c",
                "7e6906f867f9e88df0d2",
                options
                );
            var result = await pusher.TriggerAsync(
                "private-" + message.GroupId,
                "new_message",
                new { new_message },
                new TriggerOptions()
            {
                SocketId = message.SocketId
            });

            return(new ObjectResult(new { status = "success", data = new_message }));
        }
Ejemplo n.º 22
0
        //In the code above, we check if a user exists using the name. If it exists we retrieve the user’s details and, if it doesn’t, we create a new record first.
        //Then we assign the user’s details into a session object for use throughout the application. Lastly, we redirect the user to the chat page.

        public JsonResult AuthForChannel(string channel_name, string socket_id)
        {
            if (Session["user"] == null)
            {
                return(Json(new { status = "error", message = "User is not logged in" }));
            }
            var currentUser = (Models.User)Session["user"];

            var options = new PusherOptions();

            options.Cluster = "PUSHER_APP_CLUSTER";

            var pusher = new Pusher(
                "PUSHER_APP_ID",
                "PUSHER_APP_KEY",
                "PUSHER_APP_SECRET", options);

            if (channel_name.IndexOf(currentUser.id.ToString()) == -1)
            {
                return(Json(
                           new { status = "error", message = "User cannot join channel" }
                           ));
            }

            var auth = pusher.Authenticate(channel_name, socket_id);

            return(Json(auth));
        }
Ejemplo n.º 23
0
        public static string Enviar(string canal, string evento, object data)
        {
            try
            {
                var options = new PusherOptions
                {
                    Cluster   = CLUSTER,
                    Encrypted = true
                };

                var pusher = new Pusher(
                    APP_ID,
                    APP_KEY,
                    APP_SECRET,
                    options);

                var result = pusher.TriggerAsync(
                    canal,
                    evento,
                    data);

                return(result.Result.ToString());
            }
            catch (Exception ex)
            {
                throw (ex);
            }
        }
Ejemplo n.º 24
0
        public async Task <IActionResult> Create([FromBody] MessageViewModel message)
        {
            Message new_message = new Message {
                AddedBy = _userManager.GetUserName(User), message = message.message, GroupId = message.GroupId
            };

            _context.Message.Add(new_message);
            _context.SaveChanges();

            //Disparando um evento quando uma nova mensagem é recebida
            var options = new PusherOptions
            {
                Cluster   = "us2",
                Encrypted = true
            };
            var pusher = new Pusher(
                "1042889",
                "669fe9e6a16ed660eb58",
                "4c3349548631a864e575",
                options
                );
            var result = await pusher.TriggerAsync(
                "private-" + message.GroupId,
                "new_message",
                new { new_message },
                new TriggerOptions()
            {
                SocketId = message.SocketId
            });

            return(new ObjectResult(new { status = "success", data = new_message }));
        }
Ejemplo n.º 25
0
        public async Task <ActionResult> HelloWorld()
        {
            var options = new PusherOptions
            {
                Cluster   = "ap1",
                Encrypted = true
            };
            ModelTest        mdl     = new ModelTest();
            List <ModelTest> result2 = new List <ModelTest>();

            mdl.Mcadress = "1234";
            mdl.DeviceID = "DEV001";
            mdl.value    = 2;
            result2.Add(mdl);

            var pusher = new Pusher(
                "1099541",
                "4d57b796a305ad74611d",
                "1033ace6b885d1937090",
                options);

            var result = await pusher.TriggerAsync(
                "Dashboard-device",
                "my-event",
                new { message = result2 });

            return(new HttpStatusCodeResult((int)HttpStatusCode.OK));
        }
Ejemplo n.º 26
0
        public void the_new_port_should_be_used_to_create_the_base_url()
        {
            var options = new PusherOptions();

            options.Port = 100;

            StringAssert.IsMatch("http://api.pusherapp.com:100", options.GetBaseUrl().AbsoluteUri);
        }
Ejemplo n.º 27
0
        public void the_default_encrypted_options_should_be_used_to_create_the_base_url_when_encrypted_is_true()
        {
            var options = new PusherOptions();

            options.Encrypted = true;

            StringAssert.IsMatch("https://api.pusherapp.com", options.GetBaseUrl().AbsoluteUri);
        }
Ejemplo n.º 28
0
        public void the_new_cluster_should_be_used_to_create_the_base_url()
        {
            var options = new PusherOptions();

            options.Cluster = "eu";

            StringAssert.IsMatch("http://api-eu.pusher.com", options.GetBaseUrl().AbsoluteUri);
        }
Ejemplo n.º 29
0
        public void the_json_serialiser_should_be_the_supplied_one_when_set()
        {
            var options = new PusherOptions();

            options.JsonSerializer = new FakeSerialiser();

            Assert.IsInstanceOf <FakeSerialiser>(options.JsonSerializer);
        }
        public WebSocketServer()
        {
            var options = new PusherOptions {
                Cluster = "eu"
            };

            _pusher = new Pusher("1104023", "6f6586ea2b39f7d8e6e1", "d1165e49f5ca5ce4f7be", options);
        }
Ejemplo n.º 31
0
        public void Setup()
        {
            _subClient = Substitute.For<IRestClient>();
            IPusherOptions options = new PusherOptions()
            {
                RestClient = _subClient
            };

            Config.AppId = "test-app-id";
            Config.AppKey = "test-app-key";
            Config.AppSecret = "test-app-secret";

            _pusher = new Pusher(Config.AppId, Config.AppKey, Config.AppSecret, options);
        }
Ejemplo n.º 32
0
        public void Setup()
        {
            _subPusherClient = Substitute.For<IPusherRestClient>();

            IPusherOptions options = new PusherOptions()
            {
                RestClient = _subPusherClient
            };

            Config.AppId = "test-app-id";
            Config.AppKey = "test-app-key";
            Config.AppSecret = "test-app-secret";

            _pusher = new Pusher(Config.AppId, Config.AppKey, Config.AppSecret, options);

            _subPusherClient.ExecutePostAsync(Arg.Any<IPusherRestRequest>()).Returns(Task.FromResult(new TriggerResult(_v8ProtocolSuccessfulResponse, TriggerResultHelper.TRIGGER_RESPONSE_JSON)));
        }
Ejemplo n.º 33
0
        public void trigger_calls_are_made_over_port_443_when_Encrypted_option_is_set()
        {
            IPusherOptions options = new PusherOptions()
            {
                RestClient = _subClient,
                Encrypted = true
            };

            _pusher = new Pusher(Config.AppId, Config.AppKey, Config.AppSecret, options);

            ITriggerResult result =
                _pusher.Trigger(
                    channelName,
                    eventName,
                    eventData
                );

            _subClient.Received().Execute(
                Arg.Is<IRestRequest>(
                    x => _CheckRequestPort(443, _subClient, x)
                )
            );
        }
Ejemplo n.º 34
0
        public void trigger_calls_are_made_over_HTTP_by_default()
        {
            IPusherOptions options = new PusherOptions()
            {
                RestClient = _subClient
            };

            _pusher = new Pusher(Config.AppId, Config.AppKey, Config.AppSecret, options);

            ITriggerResult result =
                _pusher.Trigger(
                    channelName,
                    eventName,
                    eventData
                );

            _subClient.Received().Execute(
                Arg.Is<IRestRequest>(
                    x => CheckRequestIsMadeOver("http://", _subClient, x)
                )
            );
        }
Ejemplo n.º 35
0
        public void trigger_calls_are_made_over_configured_Port_when_option_is_set()
        {
            int expectedPort = 900;
            IPusherOptions options = new PusherOptions()
            {
                RestClient = _subClient,
                Port = expectedPort
            };

            _pusher = new Pusher(Config.AppId, Config.AppKey, Config.AppSecret, options);

            ITriggerResult result =
                _pusher.Trigger(
                    channelName,
                    eventName,
                    eventData
                );

            _subClient.Received().Execute(
                Arg.Is<IRestRequest>(
                    x => _CheckRequestPort(expectedPort, _subClient, x)
                )
            );
        }
Ejemplo n.º 36
0
 public void a_default_RestClient_should_be_used_if_one_is_not_set_on_PusherOptions_parameter()
 {
     var options = new PusherOptions();
     Assert.IsNotNull(options.RestClient);
 }
Ejemplo n.º 37
0
 public void Port_defaults_to_80()
 {
     var options = new PusherOptions();
     Assert.AreEqual(80, options.Port);
 }
Ejemplo n.º 38
0
 public void when_Encrypted_option_is_set_Port_is_changed_to_443()
 {
     var options = new PusherOptions() { Encrypted = true };
     Assert.AreEqual(443, options.Port);
 }
Ejemplo n.º 39
0
 public void when_Encrypted_option_is_set_Port_is_changed_to_443_unless_Port_has_already_been_modified()
 {
     var options = new PusherOptions() { Port = 90 };
     options.Encrypted = true;
     Assert.AreEqual(90, options.Port);
 }