stompgem / stomp

A ruby gem for sending and receiving messages from a Stomp protocol compliant message queue. Includes: failover logic, ssl support.
http://stomp.github.com
Apache License 2.0
152 stars 80 forks source link

Support over a websocket #129

Open ChiHsiang opened 8 years ago

ChiHsiang commented 8 years ago

I have feature is need to use Stomp over Websocket. And gem is not support it. Could you give some suggestions to me with extend it?

gmallard commented 7 years ago

This gem existed a long time before websockets.

I can not help you with modifications unless you:

ChiHsiang commented 7 years ago

Hi @gmallard, thanks for response.

Because some third party services use native(Websocket) Javascript client to connection server, I hope it to support websocket then send stomp format frame.

I find stomp/lib/connection/utils#116 that create tcp socket. Could be create the websocket to connection?

gmallard commented 7 years ago

There is much more to this than just changing a connect.

Websockets are, after all a wrapping of a TCP connection. In some ways similar to STOMP. Just as 'SSL' connections wrap a TCP connection.

All of the websocket MUST / SHOULD kinds of behavior and implementation details are described in the primary Websocket RFC:

RFC 6455

Any implementation by this gem would of course not be compliant with the STOMP specification. Websockets were briefly discussed when the STOMP 1.2 specification was being discussed. However, that was one of several discussions what was postponed to "STOMP V2". See:

[STOMP Spec Issue}(https://github.com/stomp/stomp-spec/issues/13)

The idea of Websockets over STOMP is however, very interesting. And simple STOMP client libraries (this one is not simple) are fairly easy to write.

What you propose will not happen with this gem (at present). However, I do think that a new 'websockets-stomp' gem would be appropriate. And a lot of fun to implement.