Komponent TGG i Delphi 7

0

Witam:)

Pomyślałem że pobawię się w pisanie własnego komunikatora opartego o GG i komponent HGG okazał się
bardzo kuszący aby coś na nim zbudować:). Skorzystałem z tego projekciku:

Bot Gadu-Gadu

Wszystko by było OK, gdyby nie problem z odbieraniem wiadomości wysłanych z GG przez mój programik.
Inaczej mówiąc: zdarzenie "OnMessage" w ogóle nie występuje gdy wysyłam message zarówno z GG,
jak i z drugiej instancji mojego programu (oczywiście z innym numerem GG). Natomiast wiadomość
w drugą stronę, tzn. mój program->GG przychodzi na GG natychmiast. Czyli wygląda na to, że jest problem
tylko z odbiorem wiadomości.
I moje pytanie: czy ci z GG coś zmienili w swoim protokole i niezbędna jest jakaś korekta komponentu
HGG, czy może ja coś robię źle.
THGG v0.8 testowałem w środowiskach Delphi 7 Enterprise i BDS 2006. W obu zainstalowałem
(bezproblemowo) zalecane Indy v9.0.18.

Mój (wstępny) kod jest "typowy" dla obsługi komponentu THGG:

//-------------------------------------------------

// rozłączenie z serwerem
procedure TForm1.ButtonRozlaczClick(Sender: TObject);
begin
HGG1.Status:=usNotAvailable;
HGG1.Disconnect;
end;

//połączenie z serwerem
procedure TForm1.ButtonPolaczClick(Sender: TObject);
begin
HGG1.Number:=123456789; //tu mój numer
HGG1.Password:='haselko';
HGG1.Host:=HGG1.GetServerAddress;
HGG1.Port:=8074;
HGG1.status:= usAvailable;//ustawia status dostepny
HGG1.Connect(500);
end;

//wysłanie wiadomości
procedure TForm1.ButtonWyslijMsgClick(Sender: TObject);
begin
HGG1.SendMessage(StrToInt(EditNrGG.Text), EditWiadomosc.Text, []);
end;

//OnConnected
procedure TForm1.HGG1Connected(Sender: TObject);
begin
showmessage('podłączony');
end;

//OnDisconnected
procedure TForm1.HGG1Disconnected(Sender: TObject);
begin
showmessage('odłączony');
end;

//OnLogin
procedure TForm1.HGG1Login(Sender: TObject);
begin
showmessage('zalogowany');
end;

//OnMessage (to zdarzenie nie występuje po odebraniu wiad.)
procedure TForm1.HGG1Message(Sender: TObject; GGNumber: Integer;
MessageContent: String; MessageTime: TDateTime);
begin
Memo1.Lines.Add('Komunikat od '+IntToStr(GGNumber)+':
"'+MessageContent+'"');
end;

//-----------------------------------------

Przejrzałem archiwum tego forum i nie znalazłem rozwiązania akurat tego problemu.

Proszę o wskazówki, co jest nie tak.

Pzdr.:)
Marek

0

Mam podobny problem
praktycznie nie wchodzi do zdarzenia "OnMessage"
Po kilku testach i sprawdzeniu co faktycznie dociera do HGG okazuje się, że przynajmniej u mnie w momencie wysłania wiadomości do 'obsługiwanego' numeru gg PacketType przybiera wiele różnych wartości (jakieś pakiety przychodzą) ale ani razu wartości 10 (przypisana do C_INPUT_MESSAGE_INCOMING).
Co więcej te wartości nie podpadają pod żadne obsługiwane.
Co ciekawe pierwszy pakiet przyjmuje typ: 2591

0

Problem najprawdopodobniej tkwi tutaj :

HGG1.Host:=HGG1.GetServerAddress;

Spróbuj zmienić na:

HGG1.Host:=91.197.13.2;

lub na jeden z poniższych http://www.kadu.net/monitor/ .

A tu masz podobny temat:
http://4programmers.net/Forum/viewtopic.php?id=129594

1 użytkowników online, w tym zalogowanych: 0, gości: 1