AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein Netzwerke Delphi Delphi Jabber Client
Thema durchsuchen
Ansicht
Themen-Optionen

Delphi Jabber Client

Ein Thema von kingflo · begonnen am 6. Nov 2006 · letzter Beitrag vom 28. Jul 2007
Antwort Antwort
Seite 1 von 2  1 2      
kingflo

Registriert seit: 21. Jun 2004
Ort: Hamburg
502 Beiträge
 
Delphi 7 Professional
 
#1

Delphi Jabber Client

  Alt 6. Nov 2006, 16:35
Hallo...
Ich habe ein riesiges Problem, und zwar brauche ich einen Jabber Client, den ich leider nicht hinbekomme, weil ich keine funktionierende Komponente finde.
Ich hatte einmal TIpwXMPP aus dem IP Works package versucht, die leider in der delphi funktion nicht funktioniert. Ich kann mich dort zwar einloggen, aber keine nachrichten verschicken oder empfangen.

JOPL aus dem exedus Projekt kann ich leider nicht benutzen, weil es ganz komisch verdrahtet ist, und das irgendwie nichts wird.

Dann hatte ich mir die JabberCom.dll als Typenbileothek importiert, und habe jetzt auch unter ActiveX einige Jabber Komponenten, weiß aber leider nicht wie ich damit umgehen kann, weil ich dafür kein beispiel finde, und nicht weiß wie und wo ich den server, die userdaten usw eintragen kann und wie man damit nachrichten verschickt weiß ich auch nicht.

Also es wäre echt super, wenn zufällig jemand nen jabber sample ätte, welches auch funktioniert, oder wenn jemand das schonmal gemacht hat und mir irgendwie helfen könnte. Ich hatte auch den MsgCmmunicator probiert, aber damit ging gar keine verbindung herzustellen.

ich hoffe sehr, dass mir jemand helfen kann...
mfg
flo
Florian Gilde
  Mit Zitat antworten Zitat
kingflo

Registriert seit: 21. Jun 2004
Ort: Hamburg
502 Beiträge
 
Delphi 7 Professional
 
#2

Re: Delphi Jabber Client

  Alt 6. Nov 2006, 17:26
Arghh ich sehe gerade, ich habe voll in der falschen sparte geposted, es sollte eigentlich zu Internet etc... kann ein Moderator es vielleicht verschieben?
Florian Gilde
  Mit Zitat antworten Zitat
Benutzerbild von Meflin
Meflin

Registriert seit: 21. Aug 2003
4.856 Beiträge
 
#3

Re: Delphi Jabber Client

  Alt 6. Nov 2006, 17:40
Die offizielle Jabber-Seite kennt 2 für Delphi ( http://www.jabber.org/software/libraries.shtml ):
http://jabbercom.sourceforge.net/
http://www.jabberstudio.org/cgi-bin/...i/exodus/jopl/ (sagtest du ja das ginge nicht... warum auch immer )

Wenn ersteres die erwähnte DLL ist, dann gibts dafür eine Dokumentation ( http://jabbercom.sourceforge.net/jabbercom.html ) und eine Demo ( http://prdownloads.sourceforge.net/j...OM_MFC-1.0.zip Ansonsten würde ich sagen siehts eher schlecht aus, da in dieser Liste keine weiteren sind, aber eins davon wirst du doch wohl zum laufen bringen...

  Mit Zitat antworten Zitat
kingflo

Registriert seit: 21. Jun 2004
Ort: Hamburg
502 Beiträge
 
Delphi 7 Professional
 
#4

Re: Delphi Jabber Client

  Alt 7. Nov 2006, 08:04
also JOPL gebe ich auf...

ich wollte es also mit JabberCom versuchen, also habe ich unter Projekt->Typenbibleothek importieren... dann die JabberCom.dll hinzugefügt, und dann JabberCom Libary (Version 2.3) installiert. Dann hatte ich einige neue komponenten in dem ActiveX tab.

z.b auch TJabberSession.

die habe ich dann auf das form gelegt, und erstmal folgendes gemacht:


Delphi-Quellcode:
 pw:=JabberParamList.Values['Password'];
 user:=JabberParamList.Values['UserName'];
 server:=JabberParamList.Values['ServerName'];
 port:=strToInt(JabberParamList.Values['ServerPort']);
 stryykeUser:=JabberParamList.Values['StryykeUserName'];

 showMessage(user+' '+pw);

 JabberSession.Server:=server;
 JabberSession.Username:=user;
 JabberSession.Port:=port;
 JabberSession.Password:=pw;

 JabberSession.Connect;
die ganzen variablen (server, user port etc) sind auch alle richtig und ok

dann habe ich noch einige erreignisse geffült und einen Button Klick, der mir den status anzeigen sollte:

Delphi-Quellcode:
procedure TLoginForm.Button2Click(Sender: TObject);
begin
showMessage(jabberSession.Status); // IST LEIDER IMMER LEER
end;

procedure TLoginForm.JabberSessionConnect(Sender: TObject);
begin
showMessage('try connect'); // KOMMT NICHT
end;

procedure TLoginForm.JabberSessionException(Sender: TObject);
begin
showMessage('error'); // KOMMT AUCH NICHT
end;

procedure TLoginForm.JabberSessionXML(ASender: TObject; Direction: Integer;
  const Text: WideString);
begin
showMessage(text);
end;

procedure TLoginForm.JabberSessionMessage(ASender: TObject;
  const Msg: IJabberMsg; const Tag: IXMLTag);
begin
showMessage(Msg.Body); // KOMMT SCHONMAL GAR NICHT
end;
wie ihr an den kommentaren sehen könnt klappt es einfach nicht, und ich weiß nicht wieso... kann mir da jemand helfen? hat vielleicht schonmal jemand was mit JabberCom und delphi gemacht? denn das sample JabberCOM_MFC-1.0.zip ist leider C++ und ich habe hier nicht einmal das MS Visual Studio oder ähnliches um es mir anzusehen, und C++ kann ich auch nicht.
Florian Gilde
  Mit Zitat antworten Zitat
7. Nov 2006, 20:12
Dieses Thema wurde von "r_kerber" von "Windows API / MS.NET Framework API" nach "Internet / LAN / ASP.NET" verschoben.
Zitat: Arghh ich sehe gerade, ich habe voll in der falschen sparte geposted, es sollte eigentlich zu Internet etc... kann ein Moderator es vielleicht verschieben?
Benutzerbild von thkerkmann
thkerkmann

Registriert seit: 7. Jan 2006
Ort: Pulheim Brauweiler
464 Beiträge
 
Delphi 2010 Professional
 
#6

Re: Delphi Jabber Client

  Alt 11. Nov 2006, 18:48
Hi,

also ich habe selber schon die JabberCom benutzt und es klappt wunderbar.
Im OnCreate des Forms hab ich folgendes:

Delphi-Quellcode:
procedure TfrmEMSout_main.OnCreate(Sender: TObject);
  try
    JSession.Server := msgrServer;
    JSession.Username := msgrUsername;
    JSession.Password := msgrPassword;
    JSession.Resource := ExtractFileName(Application.Exename);
    JSession.DoConnect(false, jatAuto);
  except
    on E: Exception do
      Logout(E.Message);
  end;
end;
dann ein OnConnect Event

Delphi-Quellcode:
procedure TfrmEMSout_main.JSessionConnect(Sender: TObject);
begin
  JSession.Available := true;
  SendJabberMessage(ExtractFilename(Application.Exename) + ' up and running');
end;
und zum Senden folgendes

Delphi-Quellcode:
procedure TfrmEMSout_main.SendJabberMessage(const aMessage: string);
var
  mMsg: IJabberMsg;
begin
  // send a message
  mMsg := JSession.CreateMsg;
  // index := Integer(lbUsers.Items.Objects[lbUsers.ItemIndex]);
  mMsg.ToJID := msgrSendTo;
  mMsg.FromJID := JSession.Username;
  mMsg.MsgType := jmtNormal;
  mMsg.Body := aMessage;

  JSession.SendMessage(mMsg);
  mMsg := nil;
end;
Ich hatte auch mal ein kleines Testprogramm gemacht.... das such ich nochmal und wenn ich es finde stell ich es hier dazu.

Gruss

Thomas.

[edit]
Attachment drangehängt....
[/edit]
Angehängte Dateien
Dateityp: zip jabbertest_570.zip (4,7 KB, 114x aufgerufen)
Thomas Kerkmann
Ich hab noch einen Koffer in Borland.
http://thomaskerkmann.wordpress.com/
  Mit Zitat antworten Zitat
Ack

Registriert seit: 12. Apr 2006
Ort: Berlin
14 Beiträge
 
Delphi 7 Professional
 
#7

Re: Delphi Jabber Client

  Alt 28. Jul 2007, 17:15
Ich bekomme bei der Zuweisung des Servers eine Exception.

Habe mich eigentlich recht genau an den Quelltext meines Vorredners gehalten.

Delphi-Quellcode:
procedure TForm1.Button1Click(Sender: TObject);
begin
   try
      JSession.Server := sServer;
      JSession.Username := sUser;
      JSession.Password := sPW;
      JSession.Resource := 'Delphi';
      JSession.DoConnect(false, jatAuto);
   except
      on E: Exception do
         showmessage(E.Message);
   end;
end;
Ich konnte den Fehler bis zur Unit OleServer verfolgen.
Ab hier wird es mir allerdings zu hoch und ich steige nicht
mehr durch.
Delphi-Quellcode:
function TOleServer.GetServer: IUnknown;
var
  HR: HResult;
  ErrorStr: string;
begin
  case ConnectKind of
    ckNewInstance:
      Result := CreateComObject(FServerData^.ClassId);

    ckRunningInstance:
    begin
      HR := GetActiveObject(FServerData^.ClassId, nil, Result);
      if not Succeeded(HR) then
      begin
        ErrorStr := Format(sNoRunningObject, [ClassIDToProgID(FServerData^.ClassId),
                                              GuidToString(FServerData^.ClassId)]);
        raise EOleSysError.Create(ErrorStr, HR, 0);
      end;
    end;

    ckRunningOrNew:
      if not Succeeded(GetActiveObject(FServerData^.ClassId, nil, Result)) then
        Result := CreateComObject(FServerData^.ClassId); <--- hier wirft er die Exception

    ckRemote:
      {Highly inefficient: requires at least two round trips - GetClassObject + QI}
      Result := CreateRemoteComObject(RemoteMachineName, FServerData^.ClassID);
  end;
end;
Hat jemand ein ähnliches Problem oder vielleicht sogar eine Lösung bzw. Erklärung?
Danke schön
  Mit Zitat antworten Zitat
marabu

Registriert seit: 6. Apr 2005
10.109 Beiträge
 
#8

Re: Delphi Jabber Client

  Alt 28. Jul 2007, 18:13
Hallo,

ist JSession der Name einer Komponente, welche du zur Entwurfszeit auf die Form gezogen hast oder hast du JSession selbst deklariert und vergessen zu instanzieren?

Grüße vom marabu
  Mit Zitat antworten Zitat
Ack

Registriert seit: 12. Apr 2006
Ort: Berlin
14 Beiträge
 
Delphi 7 Professional
 
#9

Re: Delphi Jabber Client

  Alt 28. Jul 2007, 18:15
Nein JSession ist von Typ JabberSession (aus der Typenbibliothek der DLL) und wurde zur Entwurfszeit auf dem Formular erstellt.
Ich habe an der Komponente keine Eigenschaften geändert.
  Mit Zitat antworten Zitat
marabu

Registriert seit: 6. Apr 2005
10.109 Beiträge
 
#10

Re: Delphi Jabber Client

  Alt 28. Jul 2007, 18:27
Hast du schon mit einem fertigen Jabber Client überprüft, ob deine Jabber-Installation fehlerfrei ist?
  Mit Zitat antworten Zitat
Antwort Antwort
Seite 1 von 2  1 2      


Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 09:13 Uhr.
Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz