Есть у меня одна серверная программа. И возникла потребность в управлении ею из сети. Не хотелось лепить велосипед в виде прослушки сокетов и т.д. Решил сделать, управление через протокол XMPP (Jabber). Начал гуглить, и я нашел JabberCOM.
И вот заготовка на Delphi для Вас:
unit Unit1;
interface
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, StdCtrls, OleServer, JabberCOM_TLB;
type
TForm1 = class(TForm)
JS: TJabberSession;
Button1: TButton;
procedure Button1Click(Sender: TObject);
procedure JSConnect(Sender: TObject);
procedure JSMessage(ASender: TObject; const Msg: IJabberMsg;
const Tag: IXMLTag);
private
public
end;
var
Form1: TForm1;
implementation
procedure TForm1.Button1Click(Sender: TObject);
begin
JS.Server := 'jabber.org';
JS.Username := 'mybot';
JS.Password := 'mypsswd';
JS.Resource := 'default';
JS.DoConnect(false, jatAuto);
end;
procedure TForm1.JSConnect(Sender: TObject);
begin
JS.Available := true;
end;
procedure TForm1.JSMessage(ASender: TObject; const Msg: IJabberMsg;
const Tag: IXMLTag);
begin
if Msg.FromJID = 'master@jabber.org' then begin
if Msg.Body = 'ANY_COMMAND_CMD' then begin
//здесь выполняем команду
end;
end;
end;
end.
В принципе тут все понятно. Единственно, что хочу уточнить, так это то, что команды выполняются пришедшие только от заданного JID, в нашем случае это master@jabber.org
Отправить комментарий