Msn клиент на C # - Статии Блогове Майкъл flonova

В България най-популярният клиент за незабавни съобщения е ICQ. Но това е само в България, но и в Северна Америка всички са седнали в MSN. Дори онези, които седят на Mac-ове (Говоря за компютри, но не трева) използват MSN съвместими клиенти. Докато тези, които са седнали на тревата, също така да използвате MSN. И дори изследователи на Антарктика в черни смокинги кълват Microsoft, седнал в една и съща си протокол.

В България най-популярният клиент за незабавни съобщения е ICQ. Но това е само в България, но и в Северна Америка всички са седнали в MSN. Дори онези, които седят на Mac-ове (Говоря за компютри, но не трева) използват MSN съвместими клиенти. Докато тези, които са седнали на тревата, също така да използвате MSN. И дори изследователи на Антарктика в черни смокинги кълват Microsoft, седнал в една и съща си протокол.

Защо съм? Ако имате нужда от спам бизнес в Съединените щати, и искате хората да изтеглят мигновени съобщения, а след това да могат да работят с е необходимо този протокол. Аз наскоро просто болен .NET, така че да прости местните кодиране феновете на който и да е език, аз ще го .NET версия разгледа.

Колко време не съм писал дневника. Толкова съм развълнувана (когато казвам "развълнуван", че не е, че аз не мога да се разбере правилно, така че използвайте английската дума), че вече не знаеше как да приеме тази статия текущата читателя.

Когато за първи път реши да се справят с работата на Microsoft Messenger протокол, беше установено, че интернет не е толкова много информация по тази тема. В този случай, самата Microsoft в хода на играта Пинокио ​​се престори, или факта, за това, което прави това създание. Като цяло се престори на заготовки. Аз дори поискали от служителите на компанията. Търсене в интернет блогове програмисти, работещи в корпорацията, и ги е изпратил, т.е. Бях изпратил послание до тях, за да споделят своите знания. Безполезни.

Бях толкова заразен пощенски идея, че добавих същия чип в своята програма за мониторинг на мрежата (www.cydsoft.com). Това е само един малък пример за използването на библиотеката. Искате повече] [- съвместим например? Какво ще кажете за спам? Аз по принцип мразя всички тези клиенти, но жена му и дъщерята на компютъра са Mail.ru агенти. Аз не знам дали това е така криво агент е писано, но те постоянно натъпкани някои изроди до приятели с глупави имена. Не съм го изпитва, но аз подозирам, че всичко това спам, а ако вземете една от поканите, ще се запълнят с всяка глупост в най-добрия не играя.

спамър мнения

Ето и още един пример - това е възможно да се напише червей, който ще бъде ползотворно за MSN. И това, по пощата всяка глупост размножава, защо да не използвате този колоритен мушичка от Microsoft? Ефектът може да бъде доста експлозивни, защото до сега не особено никой не се опита да го направи и първия опит да хванеш всички потребители на наивността и червеят може да се взривят онлайн.

  • червей работи банална смисъл - се опита да изпрати покани за участие в общение;
  • Ако някой реагира, а след това примами потребителя да приема и изпълнява файла. В един по същия начин вируси се разпространяват чрез електронна поща, както и доста успешно;
  • Ако някой е довело и стартирате файла, файлът се изпраща допълнително.

Както казват американците: "Небето е границата". В този случай, допълнително ограничение е въображаем. Ако тя работи добре, можете да излезе с истински зло.

асинхронен модел

Всичко се върти около библиотека клас Messenger, което е банално е създадена без параметри:

Messenger пратеник = нов Messenger ();

Клас работи с протокола в асинхронен режим. И за това, че MSNPSharp разработчиците не трябва просто да си стиснем ръцете, но нежна целувка по носа. Факт е, че ако на работническата класа е в синхронен режим, тогава ние щеше да падне много проблеми за синхронизация. Някои команди се изпълняват за дълго време. Например, когато се изтеглят контакти клас може да бъде преразгледана и ще спят в продължение на няколко секунди. Ако извършите операция, синхронно, в зимен сън, че ще отнеме цялото приложение, а само класа. Просто нарича функция, която искате и да чака, когато става Генериране на дадено събитие.

Събития в клас nemerenno. Тук е минимален набор, който може да бъде полезен и в реалния живот:

В клас две Credentials параметър на конструктора - и парола на пощата в чиста и красива форма. По този начин, в настройките на профила, с които ние се свържат към сървъра съобщение, предписва, както следва:

messenger.Credentials = нови идентификационни данни ( "[email protected]", "QWERTY");

Ако не бе обърнал внимание на всичко, което може да се наложи със събития, и да посочите сметка, можете да започнете процеса на връзка с метода на сървъра Connect ();.

  • - Позволено - допуска контакт;
  • - BlockedList - тук можем да видим на потребителите, които са блокирани;

Сама по себе си, че списъкът не е синхронизиран със сървъра и веднага след свързването на всички списъци с контакти ще бъде празна. Фактът, че цялата тази работа tormozoobraznaya. Ако искате да се вземат вашите контакти с сървъра, можете да промените AutoSynchronize имот да е вярно:

Ако започнете скоростта не е особено притеснен за свойствата AutoSynchronize променят може да бъде поставен в манипулатор ConnectionEstablished събития. Това е логично - веднага след връзката, за да синхронизирате контакти.

Когато влязохме в системата, т.е. случило SignedIn събитие, ние можем да се промени ситуацията и да започнете да говорите. За да покажете, че сте онлайн и са готови да общуват, да промените състоянието й онлайн, както следва:

Сега изпрати на самото съобщение. Този процес е най-объркващо. За да направите това, създайте нова комуникация, която е клас отговорност разговор:

Разговор разговор = messenger.CreateConversation ();

Нищо повече. Сега просто чакам за работа ConversationCreated събитието. И сега, когато се създава новата комуникация, ние трябва да се намери човек в списъка с контакти, които искате да изпратите съобщение и да го покани на конкретна и много конкретна дискусия.

e.Conversation.ContactJoined + = нов EventHandler (ContactJoined);

И покана за този пазар се извършва чрез извикване на метода и индикация Покани bedolagi кутия:

Тук трябва да бъдем внимателни и точни. ConversationCreated събитие може да се нарече няколко пъти. Аз не разбирам, с уплаха това се случи, но някак си е то. Ние трябва да се изнесе един повтарящ поколение на събитията. Това може да стане, например, чрез въвеждане на допълнителен булева променлива, която ще бъде създадена при създаване на комуникация и потушен след обработката на събитието. Ако променливата не е настроен, не обръща внимание на събитието.

И това не е всичко. Сега, в дълбините на библиотеката отново започва асинхронен процес за нас, който се нарича в края на ContactJoined събитие. И в това ние вече можем да изпратите съобщение на потребителя. Следният пример показва как да изпратите текстово съобщение прост:

В първия ред се готвим за изпращане на текстово съобщение. Тя трябва да бъде от тип TextMessage клас. Конструкторът на този клас житен премине ред от текста.

Тъй като събитието генерира Разговор клас, първият параметър е само него и точки и можем да го използваме. Ние трябва да го използвате, за да се извика методът SendTextMessage за незабавно изпращане. Е най-накрая се е случило.

На вече установен клас разговор и влезе в разговора отдалечен клиент, можете да изпратите няколко съобщения в един ред. Ако потребителят не е онлайн, Разговор все още ще бъде създадена без проблеми.

Мразя клиентите за незабавни съобщения, но не мога да приема, че за тях най-близко бъдеще. Ако не заради злото, в името на доброто, и то може да се използва. Както вече казах, в Северна Америка е най-популярният клиент Messenger. След като видях, дружество, в което, като средство за комуникация използва Skype, но след това се оказа, че в тази фирма, почти всички програмисти са разположени в София.

На диска можете да намерите на малкия клас помощник, който опростява работата с библиотеката и задвижва изпращане на съобщения да се обадя само един метод, без да броим друг конструктор, който се нарича автоматично, когато обектът се инициализира. В най-обикновените случаи от този клас ще бъде достатъчно.

Предупреждение. Ако копирате тази статия на вашия сайт, а след това да оставите връзка директно към тази страница. Благодарим Ви за разбирането