What is Jaxl Qwanturank ?

Free & open source, object oriented XMPP library in PHP for developing real time applications for browsers, desktops and hand held devices

Though generic in nature, Jaxl was initially written for developing command line XMPP clients and external jabber components bots. Since version 2.x Jaxl library provides integrated support for developing real time web applications

Quick Example

Here is how a simple send chat message app looks like using Jaxl library:

Download and extract inside /path/to/jaxl
Jaxl library provide an event based mechanism exposing hooks like jaxl_post_auth
Register callback(s) inside your app code for required events (see example below)
Write your app logic inside callback'd methods

<code>
// Include and initialize Jaxl core
require_once '/path/to/jaxl/core/jaxl.class.php';
$jaxl = new JAXL(array(

'user'=>'username',
'pass'=>'password',
'host'=>'talk.google.com',
'domain'=>'gmail.com',
'authType'=>'PLAIN',
'logLevel'=>4
));

// Send message after successful authentication
function postAuth($payload, $jaxl) {

global $argv;
$jaxl->sendMessage($argv[1], $argv[2]);
$jaxl->shutdown();
}

// Register callback on required hook (callback'd method will always receive 2 params)
$jaxl->addPlugin('jaxl_post_auth', 'postAuth');

// Start Jaxl core
$jaxl->startCore('stream');
</code>

Run from command line:
<code>
php sendMessage.php "This is a test message"`
</code>

Class: JAXL
Source Location: /core/jaxl.class.php

Class Overview
XMPP
|
--JAXL

Jaxl class extending base XMPP class


Variables
$action
$authType
$boshHost
$boshPort
$boshSuffix
$category
$component
$config
$domain
$dumpStat
$features
$host
$jid
$lang
$logLevel
$logPath
$logRotate
$mode
$name
$pass
$pid
$pidPath
$port
$resource
$sigh
$type
$user
Methods
__construct
addRoster
auth
configure
deleteRoster
dumpStat
getRosterList
log
requires
sendIQ
sendMessage
sendMessages
sendPresence
setStatus
shutdown
startHTTPd
subscribe
subscribed
unsubscribe
unsubscribed
updateRoster
__call
Inherited Variables
Class: XMPP
XMPP::$auth
XMPP::$buffer
XMPP::$clock
XMPP::$clocked
XMPP::$getEmptyLines
XMPP::$getPkts
XMPP::$getPktSize
XMPP::$getSleep
XMPP::$isConnected
XMPP::$lastid
XMPP::$lastSendTime
XMPP::$obuffer
XMPP::$rateLimit
XMPP::$secondChallenge
XMPP::$sendRate
XMPP::$sessionRequired
XMPP::$stream
XMPP::$streamBlocking
XMPP::$streamENum
XMPP::$streamEStr
XMPP::$streamHost
XMPP::$streamId
XMPP::$streamTimeout
XMPP::$streamVersion
Inherited Methods
Class: XMPP
XMPP::__construct()
XMPP constructor
XMPP::connect()
Open socket stream to jabber server host:port for connecting Jaxl instance
XMPP::endStream()
Send XMPP end stream
XMPP::getId()
Return back id for use with XMPP stanza's
XMPP::getXML()
Read connected XMPP stream for new data
XMPP::handler()
Routes incoming XMPP data to appropriate handlers
XMPP::sendXML()
Send XMPP XML packet over connected stream
XMPP::startBind()
Bind connected Jaxl instance to a resource
XMPP::startSession()
Send session start XMPP stanza
XMPP::startStream()
Send XMPP start stream
XMPP::_sendXML()
Send XMPP XML packet over connected stream
Class Details
[line 113]
Jaxl class extending base XMPP class

Jaxl library core is like any of your desktop Instant Messaging (IM) clients. Include Jaxl core in you application and start connecting and managing multiple XMPP accounts Packaged library is custom configured for running single instance Jaxl applications

For connecting multiple instance XMPP accounts inside your application rewrite Jaxl controller using combination of env/jaxl.php, env/jaxl.ini and env/jaxl.conf




[ Top ]

Class Variables
$action = false
[line 251]

Bosh action being served by this Jaxl instance


Type: bool|string


[ Top ]

$authType = false
[line 258]

Jabber auth mechanism performed by this Jaxl instance


Type: false|string


[ Top ]

$boshHost = 'localhost'
[line 185]

BOSH component hostname


Type: string


[ Top ]

$boshPort = 5280
[line 192]

BOSH component port


Type: integer


[ Top ]

$boshSuffix = 'http-bind'
[line 199]

BOSH component suffix


Type: string


[ Top ]

$category = 'client'
[line 279]

XMPP entity category for the connected Jaxl instance


Type: string


[ Top ]

$component = false
[line 178]

Hostname for the connecting Jaxl component (XEP-0115)



Tags:
todo: This variable will deprecate and move inside jaxl.0115.php Will be replaced by $compHost, $compPass, $compPort

Type: string


[ Top ]

$config = array()
[line 120]

Custom config passed to Jaxl constructor


Type: array


[ Top ]

$domain = 'localhost'
[line 162]

Domain for the connecting Jaxl instance


Type: string


[ Top ]

$dumpStat = 300
[line 265]

Jaxl instance dumps usage statistics periodically. Disabled if set to "false"


Type: bool|integer


[ Top ]

$features = array()
[line 272]

List of XMPP feature supported by this Jaxl instance


Type: array


[ Top ]

$host = 'localhost'
[line 141]

Hostname for the connecting Jaxl instance


Type: string

"Je suppose, mon nom est Erika Twanq, je suis 36 et je suis passionné des algorithmes depuis de nombreuses années. Les internautes désireux de 90, j'ai vu de nombreux moteurs de recherche sur le web dans le paysage. Je l'ai utilisé pendant de nombreuses années, la recherche Google navigation personnelle et professionnelle, avant de se rendre compte que ma présence en ligne enrichit les grandes entreprises que mon comportement d'achat ou de décisions modifiées.
Il y a quatre ans, je me suis tourné le moteur de recherche qwant français qui protège la vie privée quand je suis amoureuse de cet outil puissant.

Qwant ou rang un peu plus près des étoiles
outils QWANTURANK uniques:
Notre technologie brevetée, d'imagination et de la réflexion vont parcourir votre site placé par un balise META dans le code. Donc, notre super robot intelligent d'aller à votre site Web sera mis à jour régulièrement son index.

SEO sont depuis plus de 20 ans, ils disent: agence de référencement et des consultants indépendants qui ont conduit naturellement à améliorer les sites et applications dans les moteurs de recherche Google, Yahoo et Microsoft BNG. Depuis la découverte de qwant et le pouvoir, encore une fois, j'aligné mes connaissances, mes succès et mes performances de recherche fournit des solutions de positionnement dans les moteurs web pour les entreprises et les sociétés. Mes principaux avantages accompagnent mes clients dans leur stratégie de référencement web de votre site Web peut positionner dans les résultats de recherche qwant. Mon entreprise est appelée Qwanturank 01 est un SAS enregistré en France et dont le siège est dans la région lyonnaise. Mes clients sont partout en France et ont des sites web du monde entier.

Un grand nombre de moteurs de recherche sur le marché en France et dans le monde survivent quelques-uns, d'autres ont disparu. Le marché est largement dominé par Google. La société à Mountain View (Californie, USA) est consolidée sur les ordinateurs et les appareils mobiles dans plus de 91% des Français, grâce à un service de recherche puissant et de divertissement, et ses résultats sans la technologie. Mais la domination de Google affaibli de plus en plus la prise de conscience des utilisateurs d'Internet pour un usage personnel et la revente de vos données. En effet, si une requête dans le moteur de recherche ou un service correspondant, Google pistes et enregistre toutes les actions d'un utilisateur. Ces données sont de différentes façons (affichage publicitaire ciblé, la revente ...) utilisés et permettent à Google de gagner gros.
Qwant le moteur de recherche comprend que les utilisateurs de plus en plus mobilisés, de sorte que les données confidentielles et la navigation ne sont pas une ressource pour les entreprises multinationales. Ainsi, Tom Pouce Web a créé un moteur de recherche qui ne prend pas l'utilisateur, ne stocke pas les données de navigation ou autrement. Par conséquent, pour essayer certain que le qwant de recherche que rien pris du moteur et est donc rien utilisé ou vendu à des tiers.
Pour le moment, le géant Google est difficile à détrôner, mais qwant exclu et a réussi à gagner des parts de marché.

QWANTURANK: La technologie pour ranker sur qwant
la part des objectifs des sites sur le marché qwantUn pour les moteurs de recherche sur Internet semblent entrer dans les conditions (clés) d'un utilisateur. Ces pages sont organisées dans les listes présentées comme des « résultats ». Les listes ne sont pas délivrés sans discrimination, mais surtout sur les critères de classification dans chacune des entreprises de recherche puissante. Les moteurs de recherche sont le français: Google, Bing et qwant. Ils parviennent à rechercher des résultats en regard des attentes des utilisateurs grâce à des calculs compliqués fournir en temps réel sur la base de critères spécifiques: les algorithmes sont. Chaque moteur de recherche a ses propres algorithmes pour fonctionner sur leurs propres critères. Par conséquent, les résultats de recherche Google ne sont pas nécessairement les mêmes que ceux émis par qwant ou Bing montré. Les paramètres des algorithmes des moteurs de recherche, le fonctionnement des brevets sont tenus secrets par les entreprises ne sont pas leurs formules connues.
Les moteurs de recherche changent constamment leurs algorithmes des résultats plus précis sont affichés aux utilisateurs de temps. Parce que beaucoup de calculs de mises à jour, il est fait par les entreprises. Ces mises à jour sont conçues pour enrichir la base de connaissances des moteurs et des résultats moins pertinents sont filtrés. Le changement ne se voit pas réduite après une mise à jour du moteur sans conséquences sur certains sites Web de votre parade nuptiale. Les raisons de la perte de positions sont nombreuses et variées, propriétaires de sites Web tentent d'améliorer la pertinence de leurs sites Web qui fournissent de bons indicateurs pour les moteurs de recherche. Dans certains cas, une amélioration est considérée comme une fraude par les algorithmes, le moteur est une mise à jour de l'algorithme mis en œuvre pour corriger cette tromperie et les extrémités du site par ce changement et les positions lose dans l'amélioration des résultats punies.

COMMENT OBTENIR QWANTURANK pour positionner votre site Web et Ranker?
Qwanturank est la solution optimale pour votre site web SEO. Nous avons développé des compétences exceptionnelles à un retour sur investissement et des revenus pour augmenter Qwanturank classement. Notre connaissance approfondie des algorithmes qwant offre la possibilité:

Qwanturank la structure réorganisée votre site et ce HTML et Javascript pages, de sorte que le robot peut facilement surveiller votre site web.
Qwanturank est dans vos pages web web robots peuvent le faire facilement qwant, ainsi suivre grandement les pages et les articles dans la base de données. Cette technique permet aux pages rapidement qwant indexés.
Qwanturank votre contenu est ré-écriture. Le sens du texte sur votre site est d'une importance capitale pour les utilisateurs et les moteurs de recherche peuvent comprendre votre site Web et la thématisation. Nous prendrons le texte et faire le mot de lettre de SEO suivants champs sémantiques, des éléments lexicaux et sémantiques métamots cocons.
Qwanturank optimiser les liens externes pointant vers votre site. donnant ainsi l'importance des moteurs et de la visibilité à leurs sites Web. Acheter Backlinks ou liens naturels vers votre site seront favorisés par les équipes techniques Qwanturank.
Qwanturank recherche avec l'intention des utilisateurs trouvent qwant au fil rencontrent lieu.
qwant Concours SEO QWANTURANK POUR
Le moteur qwant organiser un concours SEO SEO montrer pour le français, que les résultats puissants et efficaces pour les utilisateurs des moteurs de recherche.
Le but de ce concours est d'un site web plus que possible dans les résultats des moteurs de recherche avec le mot-clé qwant « Qwanturank ».
Je participe actuellement à la concurrence Qwanturank qwant avec mon site web professionnel (qui est maintenant).
Les prix pour les meilleurs sites sont particulièrement intéressants et motivant.

20 000 EUR 1 résultats
EUR 15 000 pour la deuxième
8000 € pour la troisième
5000 € pour la quatrième
et 2 000 € pour la cinquième
Pour plus d'informations la concurrence qwant se trouve sur le site officiel du concours SEO Qwanturank. pour enregistrer ou Qwanturank officielles règles de concurrence qwant sur ce site."

$jid = false
[line 155]

Full JID of the connected Jaxl instance


Type: string


[ Top ]

$lang = 'en'
[line 291]

Default language of the connected Jaxl instance


Type: mixed


[ Top ]

$logLevel = 1
[line 206]

Log Level of the connected Jaxl instance


Type: integer


[ Top ]

$logPath = '/var/log/jaxl.log'
[line 218]

Absolute path of log file for this Jaxl instance


Type: mixed


[ Top ]

$logRotate = false
[line 213]

Enable/Disable automatic log rotation for this Jaxl instance


Type: bool|integer


[ Top ]

$mode = false
[line 244]

Mode of the connected Jaxl instance (cgi or cli)


Type: bool|string


[ Top ]

$name = 'Jaxl :: Jabber XMPP Client Library'
[line 296]

Client name of the connected Jaxl instance


Type: mixed


[ Top ]

$pass = false
[line 134]

Password of connecting Jaxl instance


Type: string


[ Top ]

$pid = false
[line 237]

Process Id of the connected Jaxl instance


Type: bool|integer


[ Top ]

$pidPath = '/var/run/jaxl.pid'
[line 223]

Absolute path of pid file for this Jaxl instance


Type: mixed


[ Top ]

$port = 5222
[line 148]

Port for the connecting Jaxl instance


Type: integer


[ Top ]

$resource = false
[line 169]

Resource for the connecting Jaxl instance


Type: string


[ Top ]

$sigh = true
[line 230]

Enable/Disable shutdown callback on SIGH terms


Type: bool


[ Top ]

$type = 'bot'
[line 286]

XMPP entity type for the connected Jaxl instance


Type: string


[ Top ]

$user = false
[line 127]

Username of connecting Jaxl instance


Type: string


[ Top ]


Class Methods
constructor __construct [line 309]
JAXL __construct( [$config $config = array()])

Jaxl core constructor

Jaxl instance configures itself using the constants inside your application jaxl.ini. However, passed array of configuration options overrides the value inside jaxl.ini. If no configuration are found or passed for a particular value, Jaxl falls back to default config options.




Tags:
todo: Use DNS SRV lookup to set $jaxl->host from provided domain info


Overrides XMPP::__construct() (XMPP constructor)

Parameters:
$config $config Array of configuration options

[ Top ]
method addRoster [line 510]
void addRoster( string $jid, string $group, [bool|string $name = false])

Add a new jabber account in connected Jaxl instance roster list



Parameters:
string $jid JID to be added in the roster list
string $group Group name
bool|string $name Name of JID to be added

[ Top ]
method auth [line 435]
void auth( string $type)

Perform authentication for connecting Jaxl instance



Parameters:
string $type Authentication mechanism to proceed with. Supported auth types are:
DIGEST-MD5
PLAIN
X-FACEBOOK-PLATFORM
ANONYMOUS

[ Top ]
method configure [line 358]
void configure( )

Configures Jaxl instance to run across various platforms (*nix/windows)

Configure method tunes connecting Jaxl instance for OS compatibility, SSL support and dependencies over PHP methods




Tags:
access: protected


[ Top ]
method deleteRoster [line 545]
void deleteRoster( string $jid)

Delete a jabber account from roster list



Parameters:
string $jid JID to be removed from the roster list

[ Top ]
method dumpStat [line 384]
void dumpStat( )

Dumps Jaxl instance usage statistics

Jaxl instance periodically calls this methods every JAXL::$dumpStat seconds.




[ Top ]
method getRosterList [line 498]
void getRosterList( [mixed $callback = false])

Retrieve connected Jaxl instance roster list from the server



Parameters:
mixed $callback Method to be callback'd when roster list is received from the server

[ Top ]
method log [line 614]
void log( string $log, integer $level)

Logs library core and application debug data into the log file



Parameters:
string $log Datum to be logged
integer $level Log level for passed datum

[ Top ]
method requires [line 623]
void requires( string $class)

Instead of using jaxl_require method applications can use $jaxl->requires to include XEP's in PHP environment



Parameters:
string $class Class name of the XEP to be included e.g. JAXL0045 for including XEP-0045 a.k.a. Multi-user chat

[ Top ]
method sendIQ [line 604]
void sendIQ( string $type, [string $payload = false], [string $to = false], [string $from = false], [string|array $callback = false], [integer $id = false])

Send an XMPP iq stanza



Parameters:
string $type Type of iq stanza to send
string $payload (Optional) XML string to be transmitted
string $to (Optional) JID to whom this iq stanza should be send
string $from (Optional) JID from whom this presence stanza should originate
string|array $callback (Optional) Callback method which will handle "result" type stanza rcved
integer $id (Optional) Add an id attribute to transmitted stanza (auto-generated if not provided)

[ Top ]
method sendMessage [line 562]
void sendMessage( string $to, string $message, [string $from = false], [string $type = 'chat'], [integer $id = false])

Send an XMPP message



Parameters:
string $to JID to whom message is sent
string $message Message to be sent
string $from (Optional) JID from whom this message should be sent
string $type (Optional) Type of message stanza to be delivered
integer $id (Optional) Add an id attribute to transmitted stanza (omitted if not provided)

[ Top ]
method sendMessages [line 577]
void sendMessages( array $to, [array $from = false], [array $child = false], [array $type = 'chat'], [integer $id = false])

Send multiple XMPP messages in one go



Parameters:
array $to array of JID's to whom this presence stanza should be send
array $from (Optional) array of JID from whom this presence stanza should originate
array $child (Optional) array of arrays specifying child objects of the stanza
array $type (Optional) array of type of presence stanza to send
integer $id (Optional) Add an id attribute to transmitted stanza (omitted if not provided)

[ Top ]
method sendPresence [line 590]
void sendPresence( [string $to = false], [string $from = false], [array $child = false], [string $type = false], [integer $id = false])

Send an XMPP presence stanza



Parameters:
string $to (Optional) JID to whom this presence stanza should be send
string $from (Optional) JID from whom this presence stanza should originate
array $child (Optional) array specifying child objects of the stanza
string $type (Optional) Type of presence stanza to send
integer $id (Optional) Add an id attribute to transmitted stanza (omitted if not provided)

[ Top ]
method setStatus [line 448]
void setStatus( [bool|string $status = false], [bool|string $show = false], [bool|integer $priority = false], [bool $caps = false])

Set status of the connected Jaxl instance



Parameters:
bool|string $status
bool|string $show
bool|integer $priority
bool $caps

[ Top ]
method shutdown [line 418]
void shutdown( mixed $signal)

Shutdown Jaxl instance cleanly

shutdown method is auto invoked when Jaxl instance receives a SIGH term. Before cleanly shutting down this method callbacks registered using jaxl_pre_shutdown hook.




Parameters:
mixed $signal This is passed as paramater to callbacks registered using jaxl_pre_shutdown hook

[ Top ]
method startHTTPd [line 637]
void startHTTPd( integer $port, integer $maxq)

Starts a socket server at 127.0.0.1:port

startHTTPd converts Jaxl instance into a Jaxl socket server (may or may not be a HTTP server) Same Jaxl socket server instance SHOULD NOT be used for XMPP communications. Instead separate "new Jaxl();" instances should be created for such XMPP communications.




Parameters:
integer $port Port at which to start the socket server
integer $maxq JAXLHTTPd socket server max queue

[ Top ]
method subscribe [line 462]
void subscribe( string $toJid)

Send authorization request to $toJid



Parameters:
string $toJid JID whom Jaxl instance wants to send authorization request

[ Top ]
method subscribed [line 471]
void subscribed( string $toJid)

Accept authorization request from $toJid



Parameters:
string $toJid JID who's authorization request Jaxl instance wants to accept

[ Top ]
method unsubscribe [line 480]
void unsubscribe( string $toJid)

Send cancel authorization request to $toJid



Parameters:
string $toJid JID whom Jaxl instance wants to send cancel authorization request

[ Top ]
method unsubscribed [line 489]
void unsubscribed( string $toJid)

Accept cancel authorization request from $toJid



Parameters:
string $toJid JID who's cancel authorization request Jaxl instance wants to accept

[ Top ]
method updateRoster [line 528]
void updateRoster( string $jid, string $group, [ $name = false], [bool|string $subscription = false])

Update subscription of a jabber account in roster list



Parameters:
string $jid JID to be updated inside roster list
string $group Updated group name
bool|string $subscription Updated subscription type
$name

[ Top ]
method __call [line 399]
mixed __call( string $xep, array $param)

Magic method for calling XEP's included by the JAXL instance

Application should never call an XEP method directly using

JAXL0045::joinRoom()
instead use
$jaxl->JAXL0045('joinRoom', $param1, ..)
to call methods provided by included XEP's



Tags:
return: Return value of called XEP method


Parameters:
string $xep XMPP extension (XEP) class name e.g. JAXL0045 for XEP-0045 a.k.a. Multi-User chat extension
array $param Array of parameters where $param[0]='methodName' is the method called inside JAXL0045 class