private void WS_accept_reject(bool accept)
        {
            PairingClientMsgs _msgs = new PairingClientMsgs
            {
                pairing_mode = new pairing_mode {
                    enabled = false
                }
            };

            if (accept)
            {
                _msgs.accept = new accept_reject {
                    device_id = m_pairingRequest.device_id
                };
            }
            else
            {
                _msgs.reject = new accept_reject {
                    device_id = m_pairingRequest.device_id
                };
            }

            string _json = JsonConvert.SerializeObject(_msgs);

            m_webSocket.Send(_json);
        }
示例#2
0
        protected override void onMessage(object sender, WebSocketSharp.MessageEventArgs e)
        {
            try
            {
                if (e.Type != WebSocketSharp.Frame.Opcode.TEXT)
                {
                    throw new FormatException("only accept text msg");
                }


                log4net.LogManager.GetLogger(GetType()).Debug(e.Data);

                PairingClientMsgs msg = null;

                try
                {
                    msg = JsonConvert.DeserializeObject <PairingClientMsgs>(e.Data);
                }
                catch (Exception err)
                {
                    throw new FormatException(err.Message, err);
                }


                if (msg.subscribe != null && msg.subscribe.pairing)
                {
                    addToSubscribers();
                }

                if (msg.pairing_mode != null)
                {
                    raisePairingModeChangingEvent(msg.pairing_mode.enabled);
                }

                if (msg.accept != null)
                {
                    raiseNewDeviceAcceptingEvent(msg.accept.device_id);
                }

                if (msg.reject != null)
                {
                    raiseNewDeviceRejectingEvent(msg.reject.device_id);
                }
            }
            catch (FormatException err)
            {
                log4net.LogManager.GetLogger(GetType()).Warn(err.Message, err);
                Stop(WebSocketSharp.Frame.CloseStatusCode.INCORRECT_DATA, "Msg format error");
                removeFromSubscribers();
            }
            catch (Exception err)
            {
                log4net.LogManager.GetLogger(GetType()).Warn("Error handling income msg: " + ((e.Type == WebSocketSharp.Frame.Opcode.TEXT) ? e.Data : e.RawData.ToString()), err);
                Stop(WebSocketSharp.Frame.CloseStatusCode.SERVER_ERROR, "server failed to handle data");
                removeFromSubscribers();
            }
        }
        private void WS_close_byUser()
        {
            PairingClientMsgs _msgs = new PairingClientMsgs
            {
                pairing_mode = new pairing_mode {
                    enabled = false
                }
            };

            string _json = JsonConvert.SerializeObject(_msgs);

            m_webSocket.Send(_json);
        }
        private void WS_subscribe_start()
        {
            PairingClientMsgs _msgs = new PairingClientMsgs
            {
                subscribe = new subscribe {
                    pairing = true
                },
                pairing_mode = new pairing_mode {
                    enabled = true
                }
            };


            string _json = JsonConvert.SerializeObject(_msgs);

            m_webSocket.Send(_json);
        }