Sign Up

Sign Up to our social questions and Answers Engine to ask questions, answer people’s questions, and connect with other people.

Have an account? Sign In

Have an account? Sign In Now

Sign In

Login to our social questions & Answers Engine to ask questions answer people’s questions & connect with other people.

Sign Up Here

Forgot Password?

Don't have account, Sign Up Here

Forgot Password

Lost your password? Please enter your email address. You will receive a link and will create a new password via email.

Have an account? Sign In Now

You must login to ask a question.

Forgot Password?

Need An Account, Sign Up Here

Please briefly explain why you feel this question should be reported.

Please briefly explain why you feel this answer should be reported.

Please briefly explain why you feel this user should be reported.

Sign InSign Up

The Archive Base

The Archive Base Logo The Archive Base Logo

The Archive Base Navigation

  • Home
  • SEARCH
  • About Us
  • Blog
  • Contact Us
Search
Ask A Question

Mobile menu

Close
Ask a Question
  • Home
  • Add group
  • Groups page
  • Feed
  • User Profile
  • Communities
  • Questions
    • New Questions
    • Trending Questions
    • Must read Questions
    • Hot Questions
  • Polls
  • Tags
  • Badges
  • Buy Points
  • Users
  • Help
  • Buy Theme
  • SEARCH
Home/ Questions/Q 62735
In Process

The Archive Base Latest Questions

Editorial Team
  • 0
Editorial Team
Asked: May 10, 20262026-05-10T18:31:21+00:00 2026-05-10T18:31:21+00:00

I was hoping to implement a simple XMPP server in Java. What I need

  • 0

I was hoping to implement a simple XMPP server in Java.

What I need is a library which can parse and understand xmpp requests from a client. I have looked at Smack (mentioned below) and JSO. Smack appears to be client only so while it might help parsing packets it doesn’t know how to respond to clients. Is JSO maintained it looks very old. The only promising avenue is to pull apart Openfire which is an entire commercial (OSS) XMPP server.

I was just hoping for a few lines of code on top of Netty or Mina, so I could get started processing some messages off the wire.


Joe –

Well the answer to what I am trying to do is somewhat long – I’ll try to keep it short.

There are two things, that are only loosely related:

1) I wanted to write an XMPP server because I imagine writing a custom protocol for two clients to communicate. Basically I am thinking of a networked iPhone app – but I didn’t want to rely on low-level binary protocols because using something like XMPP means the app can ‘grow up’ very quickly from a local wifi based app to an internet based one…

The msgs exchanged should be relatively low latency, so strictly speaking a binary protocol would be best, but I felt that it might be worth exploring if XMPP didn’t introduce too much overhead such that I could use it and then reap benefits of it’s extensability and flexability later.

2) I work for Terracotta – so I have this crazy bent to cluster everything. As soon as I started thinking about writing some custom server code, I figured I wanted to cluster it. Terracotta makes scaling out Java POJOs trivial, so my thought was to build a super simple XMPP server as a demonstration app for Terracotta. Basically each user would connect to the server over a TCP connection, which would register the user into a hashmap. Each user would have a LinkedBlockingQueue with a listener thread taking message from the queue. Then any connected user that wants to send a message to any other user (e.g. any old chat application) simply issues an XMPP message (as usual) to that user over the connection. The server picks it up, looks up the corresponding user object in a map and places the message onto the queue. Since the queue is clustered, regardless of wether the destination user is connected to the same physical server, or a different physical server, the message is delivered and the thread that is listening picks it up and sends it back down the destination user’s tcp connection.

So – not too short of a summary I’m afraid. But that’s what I want to do. I suppose I could just write a plugin for Openfire to accomplish #1 but I think it takes care of a lot of plumbing so it’s harder to do #2 (especially since I was hoping for a very small amount of code that could fit into a simple 10-20kb Maven project).

  • 1 1 Answer
  • 0 Views
  • 0 Followers
  • 0
Share
  • Facebook
  • Report

Leave an answer
Cancel reply

You must login to add an answer.

Forgot Password?

Need An Account, Sign Up Here

1 Answer

  • Voted
  • Oldest
  • Recent
  • Random
  1. 2026-05-10T18:31:21+00:00Added an answer on May 10, 2026 at 6:31 pm

    http://xmpp.org/xmpp-software/libraries/ has a list of software libraries for XMPP. Here is an outdated snapshot of it:

    ActionScript

    • as3xmpp

    C

    • iksemel
    • libstrophe
    • Loudmouth

    C++

    • gloox
    • Iris
    • oajabber

    C# / .NET / Mono

    • agsXMPP SDK
    • jabber-net

    Erlang

    • Jabberlang

    Flash

    • XIFF

    Haskell

    • hsxmpp

    Java

    • Echomine Feridian
    • Jabber Stream Objects (JSO)
    • Smack

    JavaScript

    • strophe.js
    • xmpp4js

    Lisp

    • cl-xmpp

    Objective-C

    • xmppframework

    Perl

    • AnyEvent::XMPP

    PHP

    • Lightr
    • xmpphp

    Python

    • jabber.py
    • pyxmpp
    • SleekXMPP
    • Twisted Words
    • xmpp-psn
    • xmpppy

    Ruby

    • XMPP4R

    Tcl

    • JabberLib
    • 0
    • Reply
    • Share
      Share
      • Share on Facebook
      • Share on Twitter
      • Share on LinkedIn
      • Share on WhatsApp
      • Report

Sidebar

Ask A Question

Stats

  • Questions 109k
  • Answers 109k
  • Best Answers 0
  • User 1
  • Popular
  • Answers
  • Editorial Team

    How to approach applying for a job at a company ...

    • 7 Answers
  • Editorial Team

    How to handle personal stress caused by utterly incompetent and ...

    • 5 Answers
  • Editorial Team

    What is a programmer’s life like?

    • 5 Answers
  • Editorial Team
    Editorial Team added an answer OK this turned out to be a really dumb thing.… May 11, 2026 at 9:26 pm
  • Editorial Team
    Editorial Team added an answer simple echo str_replace(array("\r\n", "\r", "\n"), null, $htmlCode); May 11, 2026 at 9:26 pm
  • Editorial Team
    Editorial Team added an answer We already have one hack where we have our own… May 11, 2026 at 9:26 pm

Related Questions

I have a Windows service that runs implementations of a framework across multiple threads.
I want to set something up so that if an Account within my app
I have 50+ kiosk style computers that I want to be able to get
I am developing an .net application which heavely depends on plugins. The application itself

Trending Tags

analytics british company computer developers django employee employer english facebook french google interview javascript language life php programmer programs salary

Top Members

Explore

  • Home
  • Add group
  • Groups page
  • Communities
  • Questions
    • New Questions
    • Trending Questions
    • Must read Questions
    • Hot Questions
  • Polls
  • Tags
  • Badges
  • Users
  • Help
  • SEARCH

Footer

© 2021 The Archive Base. All Rights Reserved
With Love by The Archive Base

Insert/edit link

Enter the destination URL

Or link to existing content

    No search term specified. Showing recent items. Search or use up and down arrow keys to select an item.