MyChat Server: OnConfMessage, нове повідомлення в конференції
Подія, що виникає під час надсилання повідомлення до текстової конференції будь-яким користувачем.
Шаблон події
function OnConfMessage(iCID, iUIN, iUID, iMsgType: integer; sConfName, sMsg: string): boolean;
begin
// your own code
result := true;
end;
begin
end.
Замість коментаря може бути будь-який ваш код.
Опис параметрів
Параметр |
Тип |
Значення |
iCID |
integer |
Connection ID клієнта, унікальний сеансовий ідентифікатор в онлайн структурі мережевих підключень до сервера; |
iUIN |
integer |
унікальний ідентифікатор відправника повідомлення (число >=0); |
iUID |
integer |
унікальний ідентифікатор конференції (число >=0); |
sConfName |
string |
текстова назва конференції; |
iMsgType |
integer |
|
sMsg |
string |
текст повідомлення. |
Значення, що повертається
Стандартно функція повинна повертати true, однак, якщо ви вирішуєте з якихось причин скасувати повідомлення в конференції, можна повернути false, і тоді відправлене повідомлення буде знищене і воно не відобразиться ні у відправника, ні в усіх членах конференції.
Приклад
function OnConfMessage(iCID, iUIN, iUID, iMsgType: integer; sConfName, sMsg: string): boolean;
var
bFlag: boolean;
begin
bFlag := true;
if sConfName = 'main' then begin
if iUIN <> 3 then bFlag := false;
end;
result := bFlag;
end;
begin
end.
Скрипт стежить, хто надсилає повідомлення в текстові конференції, і які. Якщо повідомлення відправляється в конференцію "main" і UIN відправника відрізняється від 3 (наприклад, модератор конференції), то повідомлення просто видаляється. Таким чином, можна зробити своєрідний фільтр типу "У конференцію "main" не можна нікому відправляти повідомлення, крім Павла Сергійовича, а у нього UIN=3".