XMPP的开发知识汇总

服务器

开源的服务实现如Openfire

商业实现如gtalk

 

客户端Libraries

C#

C# is a simple, modern, general-purpose, object-oriented programming language developed by Microsoft. With a syntax heavily influenced by C++, Delphi, and Java, as well as broad support in Windows tools and the .NET Framework, C# has become a popular choice for many developers. The following are the primary open source libraries:

agsXMPP

agsXMPP is an SDK that can be used for client, component, and server development. License: GPL/Commercial. Website: http://www.ag-software.de/.

jabber-net

The jabber-net library provides a set of .NET controls for sending and receiving XMPP data. It includes support for client connections, server components, presence, service discovery, and other XMPP primitives. License: LGPL. Website: http://code.google.com/p/jabber-net/.

Java

Java is a general purpose, object-oriented programming language developed by Sun Microsystems. Although originally developed for client-side applications, it is also quite popular in servers and general applications. Its two main libraries are:

JSO

The Jabber Stream Objects (JSO) library is a solid implementation that is mainly used for component and server development. It includes low-level support for Jabber/XMPP protocol elements, as well as a fully controllable stream connection interface, with the goal of providing a highly customizable and flexible platform for building Jabber-based applications. License: LGPL. Website: https://jso.dev.java.net/.

Smack

Smack is a very popular, full-featured library for writing clients, bots, and other applications. It was produced by the same developers who created the Openfire server and the Spark client. License: Apache. Website: http://www.igniterealtime.org/projects/smack/.

JavaScript

JavaScript is the most popular scripting language for client-side web development. Because the integration of Jabber features into websites is of inherent interest, there are many JavaScript libraries for XMPP development, as listed here:

JSJaC

JSJaC is an object-oriented library that supports client connections to XMPP servers via BOSH or the older HTTP Polling method. It uses the Ajax methodology and is fully compatible with all major Ajax/JavaScript frameworks. License: Mozilla Public License or GPL or LGPL. Website: http://blog.jwchat.org/jsjac/.

Strophe

Strophe is a well-documented library for developing XMPP clients, including robust TLS and SASL support. Strophe comes in two flavors: C (libstrophe) and JavaScript (strophejs). License: GPL. Website: http://code.stanziq.com/strophe/.

XMPP4GWT

The XMPP4GWT library is created by the producers of the Tigase XMPP server and uses the Google Web Toolkit (GWT) framework. License: GPLv3. Website: http://www.tigase.org/en/project/xmpp4gwt.

xmpp4js

The xmpp4js library is used in the Soashable web-based messenger. It has been heavily tested and has a strong emphasis on reusability and extensibility. License: LGPL. Website: http://xmpp4js.sourceforge.net/.

 

解决方案例子

如下是提供JAVA和.net解决方案的厂商

http://www.igniterealtime.org

Smack is a client library. You can use it to log into an XMPP domain and make use of the functionality it provides. Typically, Smack is used to implement a instant messaging client.

Tinder is a low-level XMPP library. It provides Java implementations of basic XMPP entities, such as Stanzas (called 'Packet' in XMPP), JIDs and Components (which typically implement part of the functionality of an XMPP server). Although in theory, Tinder could be used to implement client functionality, it currently is primarily used on the server-side. Both Whack and Openfire (an XMPP server implementation) use Tinder-defined entities. Smack does not use Tinder at all.

Whack is Java library that is used to implement external components. Whack allows a Component (as defined in Tinder) to run as a stand-alone process. Whack allows you to connect this process to an XMPP domain. This way, you can extend the functionality provided by that domain without modifying the implementation of the server software.

Whack is for external component development.  Although the component code is in Tinder, the means to externalize the component so it runs in its own process is here.

Tinder is a base set of XMPP classes used by Whack and Openfire.  It contains the code needed for component development.

Smack is for client development.

www.ag-software.de

agsXMPP is a SDK / library for the eXtensibleMessaging and Presence Protocol (XMPP) protocol written in managed C# dedicated to .NET and Mono technologies. The SDK is released as open source under a dual license.

Our SDK could be used for XMPP client, server and component development.

MatriX is the successor of the agsXMPP library. For commercial projects we recommend to use MatriX.

agsXMPP:Open Source

MartriX: Commercial

Server components / Plugin

Component Developer Guide

http://community.igniterealtime.org/docs/DOC-1924

XMPP Components enhance the functionality of an XMPP domain. They receive all stanzas that are addressed to a particular subdomain of the XMPP domain. Two types of components are identified: "internal components" run within the server software and typically have direct access to the server software API. "External components" on the other hand run outside of the server software and connect to the XMPP domain over a network protocol.

基于标准协议,因此编写的组件可以在其他的服务器上使用

Plugin

插件,每个服务器有自己的定义和实现方式,和服务器紧密集成,一般不可用于其他的服务器

 

参考图书

Professional XMPP Programming with JavaScript and jQuery

xmpp the definitive guide building real time applications with jabber technologies

时间: 2024-10-11 21:18:57

XMPP的开发知识汇总的相关文章

iOS开发资源汇总

如何用Facebook graphic api上传视频: http://developers.facebook.com/blog/post/532/ Keychain保存数据封装: https://github.com/carlbrown/PDKeychainBindingsController 对焦功能的实现: http://www.clingmarks.com/?p=612 自定义圆角Switch按件: https://github.com/domesticcatsoftware/DCRou

Vue.js基础知识汇总_其它

介绍 vue.js 是用来构建web应用接口的一个库 技术上,Vue.js 重点集中在MVVM模式的ViewModel层,它连接视图和数据绑定模型通过两种方式.实际的DOM操作和输出格式被抽象的方式到指令(Directives)和过滤器(Filters) 在哲学领域内,尽量让MVVM数据绑定API尽可能简单.模块化和可组合性也是重要的设计考虑.vue不是一个全面的框架,它被设计成简单的和灵活的.你可以用它快速原型,或混合和匹配与其他库定义前端堆栈. Vue.js的API是参考了AngularJS

Python中列表的一些基本操作知识汇总

  这篇文章主要介绍了Python中列表的一些基本操作知识汇总,皆属于Python的基本功,需要的朋友可以参考下 Python最基本的数据结构是序列(列表/元组).一个序列中的每个元素都分配有一个数字- 它的位置或索引.第一个索引是0,第二个索引是1,依此类推. Python有6内置类型的序列,但最常见的是列表和元组,我们将在本教程中看到. 有一些东西可以使用所有序列类型来做.这些操作包括索引,切片,加,乘,并检查成员.此外,Python已经内置函数查找序列的长度和搜索它的最大和最小的元素. P

JSON相关知识汇总_json

JSON:JavaScript 对象表示法(JavaScript Object Notation) JSON 语法规则 数据在名称/值对中 数据由逗号分隔 花括号保存对象 方括号保存数组 JSON有6种类型的值: 对象.数组.字符串.数字.布尔值.null JSON对象是一个容纳"名/值"对的无序集合 名字:任意字符串 值:任意类型的JSON值,包括数组和对象(对象中可以嵌入对象) 注:JSON字符串必须使用双引号(单引号会报错) 一.对象 javascript中创建字面量: var

Android界面效果UI开发资料汇总(附资料包)_Android

简介: Android界面效果UI开发资料汇总 1. Android_UI开发专题.rar 2. android界面效果全汇总.rar 对于Android平台的资源类android.content.res.Resources可能很多网友比较陌生,一起来看看SDK上是怎么介绍的吧,Contains classes for accessing application resources, such as raw asset files, colors, drawables, media or oth

PHP错误机制知识汇总_php实例

PHP的错误机制也是非常复杂的,做了几年php,也没有仔细总结过,现在就补上这一课. 特别说明:文章的PHP版本使用5.5.32 PHP的错误级别 首先需要了解php有哪些错误.截至到php5.5,一共有16个错误级别 注意:尝试下面的代码的时候请确保打开error_log: error_reporting(E_ALL); ini_set('display_errors', 'On'); E_ERROR 这种错误是致命错误,会在页面显示Fatal Error, 当出现这种错误的时候,程序就无法继

Android界面效果UI开发资料汇总(附资料包)

简介: Android界面效果UI开发资料汇总 1. Android_UI开发专题.rar 2. android界面效果全汇总.rar 对于Android平台的资源类android.content.res.Resources可能很多网友比较陌生,一起来看看SDK上是怎么介绍的吧,Contains classes for accessing application resources, such as raw asset files, colors, drawables, media or oth

Android开发权限知识汇总

本文总结了在Android开发过程中,有关权限(permission)相关知识点的汇总,有需要的朋友可以看看. 1.android.permission.WRITE_USER_DICTIONARY 允许应用程序向用户词典中写入新词 2.android.permission.WRITE_SYNC_SETTINGS 写入Google在线同步设置 3.android.permission.WRITE_SOCIAL_STREAM 读取用户的社交信息流 4.android.permission.WRITE

IOS开发网站汇总

十分钟让你明白Objective-C的语法(和Java.C++的对比) http://blog.csdn.net/totogo2010/article/details/7632384 iOS学习之sqlite的创建数据库,表,插入查看数据 http://blog.csdn.net/totogo2010/article/details/7702207 iOS SQLite3初试用 http://mobile.51cto.com/iphone-321932.htm ios简单使用sqlite3 ht