Crearea de pluginuri pentru mychat

MyChat nu este doar un chat pentru rețea sau un mesager corporativ. Este, de asemenea, un sistem foarte flexibil și extensibil care poate fi personalizat pentru aproape oricare dintre nevoile sale.







Începem o serie de articole despre scrierea programelor add-on pentru clientul MyChat. Din moment ce tema este foarte mare, iar oportunitățile oferite de această tehnologie sunt foarte largi, vor exista o mulțime de articole.

Pentru a crea cu succes programe add-on pentru MyChat, cititorul va avea suficiente cunoștințe de bază despre limbajul de programare Delphi și despre mediul de programare. Versiunea nu este fundamental importantă, dar articolele vor fi orientate spre Delphi 7. și toate exemplele vor fi date cu referire la acest mediu de programare.

1. Ce este un plug-in?

În mod strict vorbind, programul părinte și pluginul pot fi scrise chiar și în diferite limbi de programare, principalul lucru fiind acela de a observa acordul corect al apelurilor pentru funcții și trecerea parametrilor.

Pentru ca plugin-ul să poată face ceva util - în MyChat există un mecanism special MyChat Plugins SDK. Pur și simplu vorbind, acesta este un set de funcții pe care o poate apela un plug-in și un set de funcții pe care un program le poate apela de la un plug-in.

2. Arhitectura MyChat

Pentru a crea cu succes programe add-on - dezvoltatorul trebuie să înțeleagă schema programului, pentru care va crea ceva. Prin urmare, să subliniem schema activității MyChat.

MyChat este un chat multiuser client-server. Toți clienții se conectează la același server, iar pentru fiecare client serverul creează o structură specială de date care este în memorie, în timp ce clientul este online.

Fiecare client înregistrat al sistemului are un număr - UIN. Cu alte cuvinte, identificatorul unic, numărul obișnuit, este mai mare decât zero. Acest număr nu poate fi schimbat și aparține clientului din momentul înregistrării acestuia pe server. În cazul în care utilizatorul este șters, UIN nu este lansat, dar cel nou este alocat. Aceasta asigură integritatea bazei de date a serverului.

MyChat are și conceptul de canale sau conferințe. În canale, atunci când un utilizator trimite un mesaj - acesta este primit de către toți cei care sunt cu această persoană într-un singur canal. Canalele sau camerele pot avea nume diferite - dar fiecare server de canal MyChat atribuie și un număr special - UID. Spre deosebire de numărul de utilizator, care nu se schimbă niciodată - UID-ul este alocat dinamic, în timp ce serverul rulează. În timp ce canalul există - are un număr. De îndată ce toți oamenii au ieșit din canal - sunt șterși automat. UID este, de asemenea, un număr mai mare decât zero. UID nu sunt repetate, dar este important să ne amintim - că crearea unui canal UID nu neatașate la numele canalului - și a alerga sleduyushem, acesta poate fi un alt server. UID-urile pot fi văzute pe server, în timpul operării sau pe client, în fila "Canale".

Crearea de pluginuri pentru mychat

3. Plugin-uri manager

Acum, că am înțeles mai mult sau mai puțin schema sistemului, să trecem mai departe la studiul sistemului de plug-in-uri în Clientul MyChat.

Plugin, aceasta este o bibliotecă dinamică (DLL). În MyChat, se presupune că acesta este un fișier cu extensia .mcp (MyChat Plugin Library). Aceste extensii sunt conectate cu "Managerul Plug-in" din meniul principal al clientului "Plugin-uri" - "Gestionarea plug-in-urilor" sau prin apăsarea tastei rapide Alt + P.

Managerul de pluginuri arată astfel:

Crearea de pluginuri pentru mychat

O trăsătură distinctivă a sistemului software-adăugări în MyChat este că plugin-uri pot fi încărcate, descărcate, activa și dezactiva fără a reporni MyChatClient -. „On the fly“ Acest lucru simplifică foarte mult viața de dezvoltatori și foarte mult accelerează procesul de creare și de depanare.







În MyChat, fiecare plug-in trebuie să aibă un nume, iar acest nume trebuie să fie unic. Ie nu se pot încărca două plugin-uri cu același nume. În dreptul fiecărui plugin încărcat în coloana "Nume plugin", puteți debifa - atunci plug-in-ul va fi ca și cum ar fi într-o stare "înghețată". Este încărcat - dar nu este activ. Butonul „Încărcare Plugin“ descărca plugin-ul din memorie, iar „Încărcați pluginul“ - deschide o casetă de dialog Descărcare fișier și apoi selectați plugin-ul necesar, pur și simplu copiați fișierul în profilul utilizatorului și îl încarcă.

Dând dublu clic pe butonul stâng al mouse-ului sau făcând clic pe butonul "Despre plug-in", va fi afișată o fereastră de informații cu informații sumare despre plug-in și creatorul acestuia:

Crearea de pluginuri pentru mychat

Toate aceste informații se află în plugin-ul însuși într-o structură de date specială clar descrisă. Prin urmare, dezvoltatorii sunt încurajați să o completeze

4. Cum sunt realizate pluginurile în MyChat?

Fiecare plugin în MyChat este compus din cel puțin trei fișiere:

  1. Dosarul DPR al proiectului;
  2. mcplugin_func.pas - bibliotecă de funcții din SDK. nu poate fi schimbat;
  3. mcplugin_info.pas - modulul de informații, este obligatoriu să completați toate câmpurile.

Toate funcțiile din plugin pot fi împărțite condiționat în două tipuri: acestea sunt funcțiile pe care le solicită programul clientului MyChat de la plug-in - de evenimentele care apar în chat. Noi le numim "evenimente". Și a doua vedere sunt funcțiile pe care apelurile plug-in din programul MyChat Client le numim "unelte".

În viitor, vom adera la această terminologie, astfel încât să nu existe o confuzie cu numirea funcțiilor.

Programul principal este clientul MyChat. de sub care plugin-uri sunt lansate, vom numi "principal".

Cu terminologia decisă, acum este momentul să încercăm să facem ceva util.

5. Primul plug-in simplu pentru MyChat

Conform unei vechi tradiții de programare, primul program afișează sacrul "Bună ziua! "Nu vom fi foarte originali și vom face ceva similar cu MyChat.

Lăsați primul nostru plugin făcând clic pe butonul din dreapta al mouse-ului în canalul va afișa un meniu contextual cu numele de plugin, făcând clic pe canalul în care mesajul va fi transmis în numele nostru - „Bună ziua lume! “.

Crearea de pluginuri pentru mychat

Vedem modulul principal de conectare:

Primul lucru pe care trebuie să-l facem este să numim plug-in-ul nostru. Înlocuiți cuvântul gol în antetul bibliotecii: librarymyfirstplugin. Du-te la meniul Delphi. "File" - "Salvați proiectul ca ..." și salvați proiectul.

Crearea de pluginuri pentru mychat

Al doilea este de a completa informațiile de referință. Accesați modulul mcplugin_info (Ctrl + faceți clic pe butonul stâng al mouse-ului pe numele modulului din lista de utilizări):

Crearea de pluginuri pentru mychat

Completați informațiile de care avem nevoie:

Un punct important! Pentru a fi integrat în meniul contextual care apare atunci când făcând clic dreapta pe butonul mouse-ului în canal, trebuie să instalați pluginPopupMenuUserInChannelText constantă pe unitate.

Acum că pregătirile au fost finalizate, este timpul să scriem acea bucată de cod pentru care totul a început și J

6. Noi scriem codul

Trecem la fișierul proiectului (DPR). Acum trebuie să găsim acel eveniment. care va funcționa când faceți clic pe plugin-ul nostru din meniul contextual. Aceasta este funcția mcPluginOnClickPopupMenuChannelWindowText.

Vom găsi funcția dorită și scrieți următorul cod:

Funcția mcSendMessageToTextChannel. pe care o numim în cod, trimite un mesaj text pe canal. Deoarece cunoaștem UID-ul canalului (a fost transmis în funcția de eveniment), puteți trimite cu ușurință un mesaj pe acest canal imediat.

Apăsați Ctrl + F9. compilați proiectul și încărcați fișierul myfirstplugin.mcp. pe care le-am obținut ca urmare a compilației, în Clientul MyChat "Plugin Manager".

Crearea de pluginuri pentru mychat

Pluginul a fost încărcat cu succes.

7. Cum funcționează?

Faceți clic pe canal în orice loc din fereastra mesajului cu butonul drept al mouse-ului și vedeți pluginul nostru:

Crearea de pluginuri pentru mychat

Faceți clic pe numele meniului plug-in și - voila:

8. Concluzie

În „Plugins“ de pe site-ul oficial al Rețelei Software Solutions, puteți descărca codurile sursă ale diverselor programe de completare pentru a vedea cum puteți utiliza puterea SDK MyChat Plugin-uri „complet“.

Codul sursă complet al pluginului discutat în articol, precum și biblioteca compilată pot fi descărcate aici.







Articole similare

Trimiteți-le prietenilor: