Skip to content

aszlig/hxmpp

 
 

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

                   ___   ___  
|   |  \ /  |\ /| |   | |   | 
|---|   +   | + | |---  |---  
|   |  / \  |   | |     |     

                                          
HaXe library for creating XMPP clients and services.
http://hxmpp.disktree.net/


XEPS SUPPORTED
--------------
* 0004 DataForms
* 0012 LastActivity
*** 0016 PrivacyLists
* 0030 ServiceDiscovery
** 0045 MUChat
** 0047 In-Band Bytestreams
* 0049 Private XML Storage
* 0054 VCardTemp
* 0055 Search
*** 0060 PubSub
** 0065 SOCKS5 Bytestreams
* 0071 XHTML-IM
* 0077 In-Band Registration
* 0082 XMPP Date and Time Profiles
* 0085 ChatStateNotification
* 0092 SoftwareVersion
** 0096 SI File Transfer
* 0106 JID Escaping
* 0114 Jabber Component Protocol
** 0115 Entity Capabilities
* 0124 BOSH
** 0163 PersonalEvent 
** 0191 Simple Communications Blocking
* 0199 Ping 
** 0202 EntityTime
* 0203 DelayedDelivery
* 0206 BOSH
*** 0232 Bits of Binary

** XEP-xxxx: Linked Process Protocol (http://xmpp.org/extensions/inbox/lop.html)
** XEP-xxxx: Jingle RTMP Transport (http://xmpp.org/extensions/inbox/jingle-rtmp.html)
** XEP-xxxx: Jingle RTMFP Transport
** gmail-notifiy (http://code.google.com/apis/talk/jep_extensions/gmail.html)


USAGE
-----
See: http://github.com/tong/hxmpp.examples


COMPILER FLAGS
--------------
* XMPP_DEBUG	Print XMPP transfer
* JABBER_DEBUG	Print verbose debug information
* JABBER_SOCKETBRIDGE	Use a flash socket bridge as stream connection for the javascript target
* JABBER_COMPONENT	Required when building server components


NODE.JS
-------
To compile for nodejs you have to use the type definitions from: https://github.com/tong/node.hx
Set compiler flag: -D nodejs


ACTIONSCRIPT3/MXMLC
-------------------
See: https://github.com/tong/hxmpp.examples/tree/master/swc


ADOBE AIR
---------
HXMPP supports native, secure and unsecure adobe air2 socket connections.
* Get the required external classes from: http://disktree.spektral.at/git/?a=summary&p=hxair
* Add 'air' compiler flag.


BOSH
----
BOSH essentially provides a "drop-in" alternative to a long-lived, bidirectional TCP connection using a request-response mechansim over HTTP.
To use it you have to connect your client to the BOSH adress of your jabber server.
Your webserver doesn’t know about your jabber server .. you have to setup a proxy to forward requests: 

# Activate mod_proxy apache module
sudo ln -s /etc/apache2/mods-available/proxy.load /etc/apache2/mods-enabled/
# Add following line to proxy.load to activate the proxy-http module
LoadModule proxy_http_module /usr/lib/apache2/modules/mod_proxy_http.so
# Add the proxy directive to the host settings in your http.conf
# This will proxy requests: htp://127.0.0.1/xmpp -> http://127.0.0.1:7070/http-bind/
<VirtualHost *:80>
	...
	ProxyRequests Off
	ProxyPass /xmpp http://127.0.0.1:7070/http-bind/
	ProxyPassReverse /xmpp http://127.0.0.1:7070/http-bind/
	...
</VirtualHost>

# Restart apache
sudo /etc/init.d/apache2 restart

# Now you can pass in the path to the constructor of the jabber.BOSHConection class:
var cnx = new BOSHConnection( "domain.net", "127.0.0.1/xmpp/" );


SOURCE
-------
git://github.com/tong/hxmpp.git
https://github.com/tong/hxmpp


HACKERS
-------
This project accepts and *encourages* contributions.


AUTHOR
------
xmpp://tong.disktree@gmail.com

Packages

No packages published

Languages

  • Haxe 99.9%
  • JavaScript 0.1%