You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@mina.apache.org by "Niklas Gustavsson (JIRA)" <ji...@apache.org> on 2010/03/16 10:02:27 UTC

[jira] Created: (VYSPER-189) GSoC: Implement WebSockets/BOSH for XMPP AJAX clients

GSoC: Implement WebSockets/BOSH for XMPP AJAX clients 
------------------------------------------------------

                 Key: VYSPER-189
                 URL: https://issues.apache.org/jira/browse/VYSPER-189
             Project: VYSPER
          Issue Type: Task
          Components: extension
            Reporter: Niklas Gustavsson
            Assignee: Niklas Gustavsson


Apache Vysper is a modular, Java based XMPP/Jabber server. This project aims at developing a Vysper extension that enables AJAX clients to be a XMPP client, for example making it simple to expose IM/chat functionality in web apps. 

BOSH (XEP-124, XEP-206) defines a protocol where XMPP/Jabber can be used by AJAX clients. Also, with the development of WebSockets within the HTML5 work, WebSockets could be used as a way for browsers to communicate with Apache Vysper. This project could use either (or both) these protocols.

-- 
This message is automatically generated by JIRA.
-
You can reply to this email to add a comment to the issue online.


Re: [jira] Updated: (VYSPER-189) GSoC: Implement WebSockets/BOSH for XMPP AJAX clients

Posted by Niklas Gustavsson <ni...@protocol7.com>.
On Wed, May 26, 2010 at 9:52 AM, Bernd Fondermann
<be...@googlemail.com> wrote:
> However, I'd volunteer to set up a $YOU.vysper.org nameserver entry
> for everybody working on the project with a fixed IP.

That is very good to know. Unfortunately I'm very rarely spoiled with
a fixed IP (damn those limited IP4 addresses  :-). Not sure if a CNAME
entry will work for us (pointed to a dyndns domain)?

>> and you need to modify /etc/hosts (or on windows windows\system32\drivers\etc\hosts)
>> to have an entry "127.0.0.1    vysper.org" so that vysper will be resolved to the loop-back address.

This is the method I use on Ubuntu and OS X. Works like a charm.

/niklas

Re: [jira] Updated: (VYSPER-189) GSoC: Implement WebSockets/BOSH for XMPP AJAX clients

Posted by Bogdan Ciprian Pistol <bo...@gmail.com>.
On Wed, May 26, 2010 at 10:52 AM, Bernd Fondermann
<be...@googlemail.com> wrote:
> However, I'd volunteer to set up a $YOU.vysper.org nameserver entry
> for everybody working on the project with a fixed IP.

Thank you for your offer Bernd, it's nice that you registered the
domain (for the future of the Vysper project).
I personally will use the loop-back address (it's less hassle when
changing IP addresses).

Bogdan

Re: [jira] Updated: (VYSPER-189) GSoC: Implement WebSockets/BOSH for XMPP AJAX clients

Posted by Bernd Fondermann <be...@googlemail.com>.
On Sun, May 23, 2010 at 23:48, Bogdan Pistol (JIRA) <ji...@apache.org> wrote:
>
>     [ https://issues.apache.org/jira/browse/VYSPER-189?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]
>
> Bogdan Pistol updated VYSPER-189:
> ---------------------------------
>
>    Attachment: vysper_0.1.patch.tar.gz
>
> When connecting I set-up to connect to the <vysper.org> domain name (in hello.js), which isn't registered,

vysper.org is registered by me, since long time before I open-sourced
the codebase.

However, I'd volunteer to set up a $YOU.vysper.org nameserver entry
for everybody working on the project with a fixed IP.

> and you need to modify /etc/hosts (or on windows windows\system32\drivers\etc\hosts)
> to have an entry "127.0.0.1    vysper.org" so that vysper will be resolved to the loop-back address.

On Windows, setting up a loopback device might help.

  Bernd

[jira] Commented: (VYSPER-189) GSoC: Implement WebSockets/BOSH for XMPP AJAX clients

Posted by "Bogdan Pistol (JIRA)" <ji...@apache.org>.
    [ https://issues.apache.org/jira/browse/VYSPER-189?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=12858184#action_12858184 ] 

Bogdan Pistol commented on VYSPER-189:
--------------------------------------

The right place for a discussion is on jira or on the mailing list?

In my view the decoder could be like:

raw bytes --> AsyncWeb decoder --> XML extraction --> stanza creation --> Bosh IoHandler

and the encoder:

stanza --> XML serialization --> AsyncWeb encoder --> raw bytes

The Bosh IoHandler could work with a Bosh StanzaProcessor that would eventually process with some Bosh StanzaHandlers the stanzas and then it will send the processed (as defined by XEP-0206) stanzas to the XMPP StanzaProcessor.

What do you think?

> GSoC: Implement WebSockets/BOSH for XMPP AJAX clients 
> ------------------------------------------------------
>
>                 Key: VYSPER-189
>                 URL: https://issues.apache.org/jira/browse/VYSPER-189
>             Project: VYSPER
>          Issue Type: Task
>          Components: extension
>            Reporter: Niklas Gustavsson
>            Assignee: Niklas Gustavsson
>         Attachments: bosh.patch
>
>
> Apache Vysper is a modular, Java based XMPP/Jabber server. This project aims at developing a Vysper extension that enables AJAX clients to be a XMPP client, for example making it simple to expose IM/chat functionality in web apps. 
> BOSH (XEP-124, XEP-206) defines a protocol where XMPP/Jabber can be used by AJAX clients. Also, with the development of WebSockets within the HTML5 work, WebSockets could be used as a way for browsers to communicate with Apache Vysper. This project could use either (or both) these protocols.

-- 
This message is automatically generated by JIRA.
-
If you think it was sent incorrectly contact one of the administrators: https://issues.apache.org/jira/secure/Administrators.jspa
-
For more information on JIRA, see: http://www.atlassian.com/software/jira

        

[jira] Updated: (VYSPER-189) GSoC: Implement WebSockets/BOSH for XMPP AJAX clients

Posted by "Bogdan Pistol (JIRA)" <ji...@apache.org>.
     [ https://issues.apache.org/jira/browse/VYSPER-189?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]

Bogdan Pistol updated VYSPER-189:
---------------------------------

    Attachment: bosh.patch

An initial prototypical patch that implements a BoshEndpoint.
The BoshEndpoint uses AsyncWeb to parse messages.
The attached patch just parses HTTP and responds back with a status HTTP message (it works with SSL also - activated by default).
In the next step I will integrate a Bosh XMPP decoder that will use the decoded HTTP message to extract the stanzas.

> GSoC: Implement WebSockets/BOSH for XMPP AJAX clients 
> ------------------------------------------------------
>
>                 Key: VYSPER-189
>                 URL: https://issues.apache.org/jira/browse/VYSPER-189
>             Project: VYSPER
>          Issue Type: Task
>          Components: extension
>            Reporter: Niklas Gustavsson
>            Assignee: Niklas Gustavsson
>         Attachments: bosh.patch
>
>
> Apache Vysper is a modular, Java based XMPP/Jabber server. This project aims at developing a Vysper extension that enables AJAX clients to be a XMPP client, for example making it simple to expose IM/chat functionality in web apps. 
> BOSH (XEP-124, XEP-206) defines a protocol where XMPP/Jabber can be used by AJAX clients. Also, with the development of WebSockets within the HTML5 work, WebSockets could be used as a way for browsers to communicate with Apache Vysper. This project could use either (or both) these protocols.

-- 
This message is automatically generated by JIRA.
-
If you think it was sent incorrectly contact one of the administrators: https://issues.apache.org/jira/secure/Administrators.jspa
-
For more information on JIRA, see: http://www.atlassian.com/software/jira

        

[jira] Commented: (VYSPER-189) GSoC: Implement WebSockets/BOSH for XMPP AJAX clients

Posted by "Niklas Gustavsson (JIRA)" <ji...@apache.org>.
    [ https://issues.apache.org/jira/browse/VYSPER-189?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=12847926#action_12847926 ] 

Niklas Gustavsson commented on VYSPER-189:
------------------------------------------

The best place to discuss the project is on our project mailing lists, where you will also find me. Join the development mailing list as described here: http://mina.apache.org/vysper/mailing-lists.html

> GSoC: Implement WebSockets/BOSH for XMPP AJAX clients 
> ------------------------------------------------------
>
>                 Key: VYSPER-189
>                 URL: https://issues.apache.org/jira/browse/VYSPER-189
>             Project: VYSPER
>          Issue Type: Task
>          Components: extension
>            Reporter: Niklas Gustavsson
>            Assignee: Niklas Gustavsson
>
> Apache Vysper is a modular, Java based XMPP/Jabber server. This project aims at developing a Vysper extension that enables AJAX clients to be a XMPP client, for example making it simple to expose IM/chat functionality in web apps. 
> BOSH (XEP-124, XEP-206) defines a protocol where XMPP/Jabber can be used by AJAX clients. Also, with the development of WebSockets within the HTML5 work, WebSockets could be used as a way for browsers to communicate with Apache Vysper. This project could use either (or both) these protocols.

-- 
This message is automatically generated by JIRA.
-
You can reply to this email to add a comment to the issue online.


[jira] Updated: (VYSPER-189) GSoC: Implement WebSockets/BOSH for XMPP AJAX clients

Posted by "Niklas Gustavsson (JIRA)" <ji...@apache.org>.
     [ https://issues.apache.org/jira/browse/VYSPER-189?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]

Niklas Gustavsson updated VYSPER-189:
-------------------------------------

    Component/s: BOSH

> GSoC: Implement WebSockets/BOSH for XMPP AJAX clients 
> ------------------------------------------------------
>
>                 Key: VYSPER-189
>                 URL: https://issues.apache.org/jira/browse/VYSPER-189
>             Project: VYSPER
>          Issue Type: Task
>          Components: BOSH, extension
>            Reporter: Niklas Gustavsson
>            Assignee: Niklas Gustavsson
>         Attachments: bosh.patch, vysper_0.1.patch.tar.gz
>
>
> Apache Vysper is a modular, Java based XMPP/Jabber server. This project aims at developing a Vysper extension that enables AJAX clients to be a XMPP client, for example making it simple to expose IM/chat functionality in web apps. 
> BOSH (XEP-124, XEP-206) defines a protocol where XMPP/Jabber can be used by AJAX clients. Also, with the development of WebSockets within the HTML5 work, WebSockets could be used as a way for browsers to communicate with Apache Vysper. This project could use either (or both) these protocols.

-- 
This message is automatically generated by JIRA.
-
You can reply to this email to add a comment to the issue online.


[jira] Commented: (VYSPER-189) GSoC: Implement WebSockets/BOSH for XMPP AJAX clients

Posted by "Bernd Fondermann (JIRA)" <ji...@apache.org>.
    [ https://issues.apache.org/jira/browse/VYSPER-189?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=12848320#action_12848320 ] 

Bernd Fondermann commented on VYSPER-189:
-----------------------------------------

Students who want to make themselves familiar with the topic can be recommended to read
+ RFC 2616: http://tools.ietf.org/html/rfc2616
+ RFC 3920: http://xmpp.org/internet-drafts/draft-ietf-xmpp-3920bis-05.html
+ XEP-124: http://xmpp.org/extensions/xep-0124.html
+ XEP-206: http://xmpp.org/extensions/xep-0206.html

> GSoC: Implement WebSockets/BOSH for XMPP AJAX clients 
> ------------------------------------------------------
>
>                 Key: VYSPER-189
>                 URL: https://issues.apache.org/jira/browse/VYSPER-189
>             Project: VYSPER
>          Issue Type: Task
>          Components: extension
>            Reporter: Niklas Gustavsson
>            Assignee: Niklas Gustavsson
>
> Apache Vysper is a modular, Java based XMPP/Jabber server. This project aims at developing a Vysper extension that enables AJAX clients to be a XMPP client, for example making it simple to expose IM/chat functionality in web apps. 
> BOSH (XEP-124, XEP-206) defines a protocol where XMPP/Jabber can be used by AJAX clients. Also, with the development of WebSockets within the HTML5 work, WebSockets could be used as a way for browsers to communicate with Apache Vysper. This project could use either (or both) these protocols.

-- 
This message is automatically generated by JIRA.
-
You can reply to this email to add a comment to the issue online.


[jira] Commented: (VYSPER-189) GSoC: Implement WebSockets/BOSH for XMPP AJAX clients

Posted by "Bernd Fondermann (JIRA)" <ji...@apache.org>.
    [ https://issues.apache.org/jira/browse/VYSPER-189?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=12858102#action_12858102 ] 

Bernd Fondermann commented on VYSPER-189:
-----------------------------------------

I think before we dig too deep into any implementation of this, we should have a public discussion how we plan to implement it.

> GSoC: Implement WebSockets/BOSH for XMPP AJAX clients 
> ------------------------------------------------------
>
>                 Key: VYSPER-189
>                 URL: https://issues.apache.org/jira/browse/VYSPER-189
>             Project: VYSPER
>          Issue Type: Task
>          Components: extension
>            Reporter: Niklas Gustavsson
>            Assignee: Niklas Gustavsson
>         Attachments: bosh.patch
>
>
> Apache Vysper is a modular, Java based XMPP/Jabber server. This project aims at developing a Vysper extension that enables AJAX clients to be a XMPP client, for example making it simple to expose IM/chat functionality in web apps. 
> BOSH (XEP-124, XEP-206) defines a protocol where XMPP/Jabber can be used by AJAX clients. Also, with the development of WebSockets within the HTML5 work, WebSockets could be used as a way for browsers to communicate with Apache Vysper. This project could use either (or both) these protocols.

-- 
This message is automatically generated by JIRA.
-
If you think it was sent incorrectly contact one of the administrators: https://issues.apache.org/jira/secure/Administrators.jspa
-
For more information on JIRA, see: http://www.atlassian.com/software/jira

        

[jira] Updated: (VYSPER-189) GSoC: Implement WebSockets/BOSH for XMPP AJAX clients

Posted by "Bogdan Pistol (JIRA)" <ji...@apache.org>.
     [ https://issues.apache.org/jira/browse/VYSPER-189?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]

Bogdan Pistol updated VYSPER-189:
---------------------------------

    Attachment: vysper_0.1.patch.tar.gz

This patch adds Jetty 7 dependency (in pom.xml) and implements a basic connector for Vysper that uses Jetty to respond to BOSH clients with a simple response.
This only implements the initial response from Vysper connection manager, it does not go further.

The implementation is very basic, it does not use nbxml parser. It needs to be updated to use the XML parser.

For testing I used Strophe.js client (the code for testing is included).

Because of off-line browser  security restrictions you need to set-up apache or some other HTTP server to serve the client files.

The client test uses flXHR Flash library to circumvent XHR restrictions on connecting on a different domain, so this will not be a concern.

When connecting I set-up to connect to the <vysper.org> domain name (in hello.js), which isn't registered, and you need to modify /etc/hosts (or on windows windows\system32\drivers\etc\hosts)
to have an entry "127.0.0.1    vysper.org" so that vysper will be resolved to the loop-back address.

In the client there will be no graphical notification as the server doesn't do much for now. There will be logs in Vysper only.


> GSoC: Implement WebSockets/BOSH for XMPP AJAX clients 
> ------------------------------------------------------
>
>                 Key: VYSPER-189
>                 URL: https://issues.apache.org/jira/browse/VYSPER-189
>             Project: VYSPER
>          Issue Type: Task
>          Components: extension
>            Reporter: Niklas Gustavsson
>            Assignee: Niklas Gustavsson
>         Attachments: bosh.patch, vysper_0.1.patch.tar.gz
>
>
> Apache Vysper is a modular, Java based XMPP/Jabber server. This project aims at developing a Vysper extension that enables AJAX clients to be a XMPP client, for example making it simple to expose IM/chat functionality in web apps. 
> BOSH (XEP-124, XEP-206) defines a protocol where XMPP/Jabber can be used by AJAX clients. Also, with the development of WebSockets within the HTML5 work, WebSockets could be used as a way for browsers to communicate with Apache Vysper. This project could use either (or both) these protocols.

-- 
This message is automatically generated by JIRA.
-
You can reply to this email to add a comment to the issue online.


[jira] Commented: (VYSPER-189) GSoC: Implement WebSockets/BOSH for XMPP AJAX clients

Posted by "Florian Moga (JIRA)" <ji...@apache.org>.
    [ https://issues.apache.org/jira/browse/VYSPER-189?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=12847917#action_12847917 ] 

Florian Moga commented on VYSPER-189:
-------------------------------------

I am interested in developing this as part of the GSoC. How can I contact the mentor for this project for further information?
Thank you.

> GSoC: Implement WebSockets/BOSH for XMPP AJAX clients 
> ------------------------------------------------------
>
>                 Key: VYSPER-189
>                 URL: https://issues.apache.org/jira/browse/VYSPER-189
>             Project: VYSPER
>          Issue Type: Task
>          Components: extension
>            Reporter: Niklas Gustavsson
>            Assignee: Niklas Gustavsson
>
> Apache Vysper is a modular, Java based XMPP/Jabber server. This project aims at developing a Vysper extension that enables AJAX clients to be a XMPP client, for example making it simple to expose IM/chat functionality in web apps. 
> BOSH (XEP-124, XEP-206) defines a protocol where XMPP/Jabber can be used by AJAX clients. Also, with the development of WebSockets within the HTML5 work, WebSockets could be used as a way for browsers to communicate with Apache Vysper. This project could use either (or both) these protocols.

-- 
This message is automatically generated by JIRA.
-
You can reply to this email to add a comment to the issue online.