XMPP的开发知识汇总

简介: 服务器 开源的服务实现如Openfire 商业实现如gtalk   客户端Libraries C# C# is a simple, modern, general-purpose, object-oriented programming language developed by Microsoft.

服务器

开源的服务实现如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

相关文章
|
XML API 数据安全/隐私保护
|
XML 数据格式
XMPP学习——3、XMPP协议学习补充
流基础 两个基本概念,使得XMPP实体之间的小的结构化信息有效载荷能快速地进行异步交换:XML流和XML节。这些术语的定义如下。 XML流的定义: XML流是一个容器,用于任何两个实体通过网络进行XML元素的交换. XML流的开始明确表达为一个打开的 "流头" (即, 一个包含了适当树形和命名空间声明的 XML <stream> 标签), 而这个XML流
1254 0
XMPP客户端库Smack
原文博客地址:http://blog.csdn.net/chszs/article/details/41576877
858 0
XMPP客户端
1. Strophe.js 2. Converse.js
1228 0
|
数据安全/隐私保护 安全
XMPP客户端库Smack 4.0.6版开发之四
版权声明:本文为博主chszs的原创文章,未经博主允许不得转载。 https://blog.csdn.net/chszs/article/details/41620825 XMPP客户端库Smack 4.0.6版开发之四 作者:chszs,转载需注明。
891 0
XMPP客户端库Smack 4.0.6版开发之五
版权声明:本文为博主chszs的原创文章,未经博主允许不得转载。 https://blog.csdn.net/chszs/article/details/41620843 XMPP客户端库Smack 4.0.6版开发之五 作者:chszs,转载需注明。
688 0
XMPP客户端库Smack 4.0.6版开发之六
版权声明:本文为博主chszs的原创文章,未经博主允许不得转载。 https://blog.csdn.net/chszs/article/details/41620853 XMPP客户端库Smack 4.0.6版开发之六 作者:chszs,转载需注明。
782 0