LINUX.ORG.RU

WebSocketSharp - как достать данные C#, wpf

 


0

2

Добрый день,

Юзаю библиотеку WebSocketSharp для обмена между компами. Объяните, плиз, как достать данные для ViewModel?

Есть класс

 public class WSServModel
 {
        WebSocketServer wssv = new WebSocketServer(8080);

        public class my_data : WebSocketBehavior
        {
            public string Data
            {
                get { return _data; }
                set
                {
                    _data = value;
                }
            }            
            
            bool _isData = false;

            public bool IsData
            {
                get { return _isData; }
                set
                {
                    _isData = value;
                }
            }

            protected override void OnMessage(MessageEventArgs e)
            {
                Data = e.Data;

                IsData = true;                
            }
      }

        public bool Start()
        {
            wssv.AddWebSocketService<my_data>("/my_data");

            wssv.Start();
            

            if (wssv.IsListening)
            {
                return true;
            }

            return false;
        }
}

public class WSServerVM : ViewModel
{
        WSServModel wsServModel = new WSServModel();

        public WSServerVM()
        {            
            if (wsServModel.Start())
            {
            }
        }
}

как дать знать ViewModel, что данные готовы? Снаружи есть только доступ к родительскому wsServModel.

Спасибо.



Последнее исправление: AlexVM22 (всего исправлений: 3)

Юзаю библиотеку WebSocketSharp

не делай так.

С этим к лавсану или на винфак, даже и не знаю что лучше ;-)

---

«обмен между компами» делается специально для того заточенными средствами. а-ля zMQ, redis и прочие-прочие.

MKuznetsov ★★★★★
()
Ответ на: комментарий от anonymous

Ты б еще здесь про VisualBasic спросил. Или MFC.

С чего это? Дотнет сейчас относительно кроссплатформенный, а в репе сабжевой библиотеки ещё и MonoDevelop (ныне, правда, заброшенный) упоминается.

hobbit ★★★★★
()
Последнее исправление: hobbit (всего исправлений: 1)

[code]

public class WSServerVM : ViewModel { WSServModel wsServModel = new WSServModel();

    wsServModel.AddWebSocketService<my_data>(); //ы?

    public WSServerVM()
    {            
        if (wsServModel.Start())
        {
        }
    }

}

[/code]

Ну и прибей в OnMessage реактивное свойство модели, которым хочешь «дать знать», или по старинке обработчик дергай.

Тут жы есть примеры https://github.com/sta/websocket-sharp

anonymous
()
        public bool Start()
        {
            wssv.AddWebSocketService<my_data>("/my_data");

            wssv.Start();
            

            if (wssv.IsListening)
            {
                return true;
            }

            return false;
        }

Не туда посмотрел, не то скопипастил :) У тебя пристегнуто уже поведение. Ну так сделай в модели свойство да и дергай в OnMessage.

anonymous
()