jabber xmpp support lazarus / 5-Lazarus Extra Components ---------------------------------------------------------------------- izzy · 2006-10-04 17:53 Hello I have good idea :] We haven't jabber component. It is open source instant comunication protocol. I am poor in coding components in lazarus And I can't make that component. But maby someone can write it ---------------------------------------------------------------------- zzarr · 2008-05-10 09:32 There still isn't a jabber component? Greetings Zzarr ---------------------------------------------------------------------- j4ckr1pp3r · 2009-05-25 02:42 I know it's a bit late,,but hey,, there is nothing wrong with shared, right  For those who might still interested with xmpp, please try this unit  http://devi.web.id/files/uxmpp.zip and don't forget to leave a comment here ---------------------------------------------------------------------- invarbrass · 2009-06-03 15:40 thanks! I was recently looking for xmpp stuffs. ---------------------------------------------------------------------- evoshroom · 2012-07-08 21:14 I've tried this out (using the version on GitHub that is slightly newer and comes with all the required libraries). On Windows when I try to login I get output, but it doesn't connect: => => <= X-GOOGLE-TOKENX-OAUTH2 => <= ERROR: 10091, ERROR: 10054,Connection reset by peer Logged out On Mac I simply get an error with no output: dxmpp Semaphore init failed (possibly too many concurrent threads). ---------------------------------------------------------------------- Leledumbo · 2012-07-09 06:20 Quotedxmpp Semaphore init failed (possibly too many concurrent threads).On *nix, chtreads unit must be used (and it has to be the first unit in the .lpr uses clause). ---------------------------------------------------------------------- BigChimp · 2012-07-09 06:34 Quote from: evoshroom on July 08, 2012, 11:14:19 pmI've tried this out (using the version on GitHub that is slightly newer and comes with all the required libraries). Also, a link to the github repository would be nice - if only for reference Thanks! ---------------------------------------------------------------------- evoshroom · 2012-07-09 06:39 Thanks for the tip!  That at least got me output on the Mac side, though it is still not working on either side.  The output I get on the Mac is as follows: => => <= <= X-GOOGLE-TOKENX-OAUTH2 => <= ERROR: -2, ---------------------------------------------------------------------- evoshroom · 2012-07-09 06:42 Quote from: BigChimp on July 09, 2012, 08:34:57 amQuote from: evoshroom on July 08, 2012, 11:14:19 pmI've tried this out (using the version on GitHub that is slightly newer and comes with all the required libraries). Also, a link to the github repository would be nice - if only for reference Thanks! Sure. https://github.com/devi/uxmpp ---------------------------------------------------------------------- evoshroom · 2012-07-09 07:58 For anyone else following along I've figured out another big chunk of what was wrong.  To start I Googled for the protocol and once found followed along with the connection and what it should look like.  You can find out what a Google Talk connection should look like at the low-level here: https://developers.google.com/cloud-print/docs/rawxmpp Then, I noticed where the error occurred.  That is, it occurred right where the SASL Authentication Handshake should begin.  That suggested an error in the SSL Library or the SASL unit.  Some fiddling around with the SSL Library and I discovered this code in ssl_openssl_lib.pas (which is strait from the GitHub):  Code: [Select] {$IFNDEF WIN32}   DLLSSLName: string = 'libssl';   DLLUtilName: string = 'libcrypto';   {$ELSE}   DLLSSLName: string = 'ssleay32.dll';   DLLSSLName2: string = 'libssl32.dll';   DLLUtilName: string = 'libeay32.dll';   {$ENDIF} Now, it seemed a little funny to me that Unix was the one using the DLL's, so I swapped it around. Code: [Select]{$IFNDEF UNIX}   DLLSSLName: string = 'libssl';   DLLUtilName: string = 'libcrypto';   {$ELSE}   DLLSSLName: string = 'ssleay32.dll';   DLLSSLName2: string = 'libssl32.dll';   DLLUtilName: string = 'libeay32.dll';   {$ENDIF} And guess what... It connected just fine.  At least on Windows it did.  I still have to check it out for Mac. ---------------------------------------------------------------------- evoshroom · 2012-07-09 08:41 Works on Mac now too and tested person-to-person messaging, which also works. ---------------------------------------------------------------------- BigChimp · 2012-07-09 09:21 Great! I have some use for a Jabber unit in FPC... going to remember this. Perhaps this is something for the Lazarus CCR repository