1 / 6

OutVoice instant messenger

OutVoice instant messenger. Goals. Develop a simple text chat protocol which will provide: public messaging, deliver to all on the server; private messaging, deliver to the specified client; nickname system; server management, i.e. kicking ‘bad’ guys;

Télécharger la présentation

OutVoice instant messenger

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. OutVoice instant messenger

  2. Goals • Develop a simple text chat protocol which will provide: • public messaging, deliver to all on the server; • private messaging, deliver to the specified client; • nickname system; • server management, i.e. kicking ‘bad’ guys; • periodical connection checking, ping-pong exchange. • Implement both its server and client sidesusing c++ programming language and its features from latest standard, c++11.

  3. The protocol, OutVoice IM • Protocol uses verbs for main actions and their past form for server replies, e.g. SHOUT becomes SHOUTED; • Main commands: • SHOUT/SHOUTED; • WHISPER/WHISPERED; • TAKENICK/TOOKNICK; • QUIT/QUITED.

  4. Events flow • Each client hangs on its socket and listens to it; • If a message arrives,the client creates Eventobject and passes itto the EventsQueue; • Server’s auxiliary thread, processEvent, getsthe Event and acts accordingly, e.g. sends message for all on the server.

  5. Clients • Main client is written on c++ programming language and uses FLTK toolkit as GUI framework; • Also there were writtena pair of bots using python3: • the weather bot uses openweather API, JSON; • the calc bot useswolfram API, XML.

  6. Tools • Wireshark enables developers to write dissectors for their custom protocols using Lua 5.2;

More Related