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

netio.rb:47:in `block (2 levels) in _receive': Connected, header read is nil, is this really a Stomp Server? (Stomp::Error::StompServerError) #151

Closed exactor closed 6 years ago

exactor commented 6 years ago

Hi Attempting to connect and always getting this issue back on v1.3.5 netio.rb:47:in `block (2 levels) in _receive': Connected, header read is nil, is this really a Stomp Server? (Stomp::Error::StompServerError)

if i update to 1.4.4 this is the issue /netio.rb:71:in `block in _receive': unhandled exception

Any pointers at what should i be looking at? i have tested the URL and credentials on a Java integration and all seems to work.

gmallard commented 6 years ago

Thanks for this report. At a very minimum removal of the Stomp::Error::StompServerError is a regression.

However that does nothing to help with your exact problem.

Questions:

1) What broker? 2) Do you have access to broker logs, and have you reviewed them? Can you post them? Broker logs can be very valuable for this kind of difficulty. 3) Very odd behaviors can occur if the server and client have mismatched SSL configurations. Are you trying to connect to an SSL port on the broker? 4) In the _receive method are you in a position where you can change to this:

drdbg = true

that might give us some more information. 5) Can you post your connect parameters?

I do urge you to stick with 1.4.4 for this debugging effort. Right now, I am thinking this must be an environmental setting.

exactor commented 6 years ago

Hi , Thanks for your promted response , sorry i was not giving too much information. This is an internal service but i can share some of the specs. Attempting to connect to an ssl (port 61617) domain, with username and password (both checked already) i have tried different SSL versions without success TLSv1 , TLSv1_1, TLSv1_2... i don't have direct access to the broker logs but i guess i will have to find out about this...

`drdgb = true

["nilcheck", false] ["wiredatain_01A", "\x00\x00\x00\xF0\x01ActiveMQ\x00\x00\x00\n", 2018-06-19 09:32:10 -0700] ["wiredatain_01B", "\x00\x00\x00\xF0\x01ActiveMQ\x00\x00\x00\n", 2018-06-19 09:32:10 -0700] ["wiredatain_02A", "\x00\x00\x00\xF0\x01ActiveMQ\x00\x00\x00\n", 2018-06-19 09:32:10 -0700] ["wiredatain_02B", "\x00\x00\x00\xF0\x01ActiveMQ\x00\x00\x00\n", 2018-06-19 09:32:10 -0700] ["wiredatain_02C", "\x01\x00\x00\x00\xDE\x00\x00\x00\t\x00\x11TcpNoDelayEnabled\x01\x01\x00\x12SizePrefixDisabled\x01\x00\x00\tCacheSize\x05\x00\x00\x04\x00\x00\x11StackTraceEnabled\x01\x01\x00\fCacheEnabled\x01\x01\x00\x14TightEncodingEnabled\x01\x01\x00\fMaxFrameSize\x06\x7F\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x00\x15MaxInactivityDuration\x06\x00\x00\x00\x00\x00\x00u0\x00 MaxInactivityDurationInitalDelay\x06\x00\x00\x00\x00\x00\x00'\x10"] ["wiredatain_02D", "\x01\x00\x00\x00\xDE\x00\x00\x00\t\x00\x11TcpNoDelayEnabled\x01\x01\x00\x12SizePrefixDisabled\x01\x00\x00\tCacheSize\x05\x00\x00\x04\x00\x00\x11StackTraceEnabled\x01\x01\x00\fCacheEnabled\x01\x01\x00\x14TightEncodingEnabled\x01\x01\x00\fMaxFrameSize\x06\x7F\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x00\x15MaxInactivityDuration\x06\x00\x00\x00\x00\x00\x00u0\x00 MaxInactivityDurationInitalDelay\x06\x00\x00\x00\x00\x00\x00'\x10"] ["wiredatain_02A", "\x01\x00\x00\x00\xDE\x00\x00\x00\t\x00\x11TcpNoDelayEnabled\x01\x01\x00\x12SizePrefixDisabled\x01\x00\x00\tCacheSize\x05\x00\x00\x04\x00\x00\x11StackTraceEnabled\x01\x01\x00\fCacheEnabled\x01\x01\x00\x14TightEncodingEnabled\x01\x01\x00\fMaxFrameSize\x06\x7F\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x00\x15MaxInactivityDuration\x06\x00\x00\x00\x00\x00\x00u0\x00 MaxInactivityDurationInitalDelay\x06\x00\x00\x00\x00\x00\x00'\x10", 2018-06-19 09:32:10 -0700] ["wiredatain_02B", "\x01\x00\x00\x00\xDE\x00\x00\x00\t\x00\x11TcpNoDelayEnabled\x01\x01\x00\x12SizePrefixDisabled\x01\x00\x00\tCacheSize\x05\x00\x00\x04\x00\x00\x11StackTraceEnabled\x01\x01\x00\fCacheEnabled\x01\x01\x00\x14TightEncodingEnabled\x01\x01\x00\fMaxFrameSize\x06\x7F\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x00\x15MaxInactivityDuration\x06\x00\x00\x00\x00\x00\x00u0\x00 MaxInactivityDurationInitalDelay\x06\x00\x00\x00\x00\x00\x00'\x10", 2018-06-19 09:32:10 -0700] ["wiredatain_02C", nil]`

exactor commented 6 years ago

Hey sorry to have wasted you time , it looks like the broker had turn off Stomp protocol. i can only use OpenWire. :(

gmallard commented 6 years ago

Thanks for that information.

Given that I can actually recreate your failure here.

Your broker, however is going to require a stomp transport in order to use this gem. Hope you can make that happen.

Given all the above, I am closing this issue.