How to debug the websocket transport in crossbar ?

454 views
Skip to first unread message

Potens

unread,
Oct 26, 2014, 5:32:03 AM10/26/14
to autob...@googlegroups.com
Hello,

I'm evaluating crossbar.io on a project of mine right now (and if sounds good, maybe I will use it in a big project in my company on something that is a bit "Internet of things" related, I will talk about that in other post since I've other questions and I've other projects that already works be can be rewritten using crossbar instead of what I've now, gevent+socketio+zmq)

I'm trying to work with a traditionnal approach of infrastructure right now with:

Client browser <->  nginx/haproxy <-> crossbar
--------------------------------------------
                   net1
                               -------------------------------------
                                              net2
So, my client is not on the same net than crossbar.

I've tried this with nginx and haproxy, having the same result with the two (since either of them can be used as a websocket reverse proxy)

The problem I've is, it sounds like the proxy is working only one way, the client is able to communicate with crossbar but, it seems the other way is not working.

If I activate the debug in the javascript client, I see this:

AutobahnJS debug enabled
opening
trying to create WAMP transport of type: websocket 
using WAMP transport type: websocket 
connection not open, queuing subscribe 
connection not open, queuing subscribe
connection not open, queuing subscribe
WebSocket transport send [1,"realm1",{"roles":{"caller":{"features":{"caller_identification":true,"progressive_call_results":true}},"callee":{"features":{"progressive_call_results":true}},"publisher":{"features":{"subscriber_blackwhite_listing":true,"publisher_exclusion":true,"publisher_identification":true}},"subscriber":{"features":{"publisher_identification":true}}}}]
WebSocket transport receive [2,7772331297034360,{"authrole":"anonymous","authmethod":"anonymous","roles":{"broker":{"features":{"publisher_identification":true,"publisher_exclusion":true,"subscriber_blackwhite_listing":true}},"dealer":{"features":{"progressive_call_results":true,"caller_identification":true}}},"authid":"4F_bkM-xXP5rc38zdgiI9bTR"}]
Congrats!  You're connected to the WAMP server!
WebSocket transport send [32,5004856913821696,{},"com.domodip.setsensors"]
processed queued subscribe
WebSocket transport send [32,4154484223639552,{},"com.domodip.setactuators"]
processed queued subscribe
WebSocket transport send [32,1472813225476096,{},"com.domodip.setpv"]
processed queued subscribe
WebSocket transport receive [33,5004856913821696,7599170818932330]
WebSocket transport receive [33,4154484223639552,2695643031108504]
WebSocket transport receive [33,1472813225476096,488490258305594]

Is it a way to debug the other side ? I would like to see the connections done by crossbar to check if it sends the websockets frames to my proxy (and not my client), ect...


PS: I'm starting to debug with wireshark, but it is not so easy.
Remark (nothing related): I'm trying to run crossbar on a acme aria g20 (from acme), with 64MB of ram, it is a bit short... a bit the OOMKiller feast ;-)
PPS: if I succeed in this, I will create an end to end tutorial (crossbar+angular+nginx+zigbee+gpio), if there is an interest

I've put my haproxy and nginx conf here if some are interested, ensure to not use the two, only one of them:
haproxy:
nginx:


Potens

unread,
Oct 26, 2014, 5:32:45 AM10/26/14
to autob...@googlegroups.com
Sorry, just forgot to sign.

Have a nice day,

Nicolas

Potens

unread,
Oct 26, 2014, 7:30:42 AM10/26/14
to autob...@googlegroups.com
Ok,

I've tried with the hello:python template and this is working, so the problem is in my code. Nevertheless, I think the question has still some interest (being able to debug websocket transport).

I've tried with nginx and haproxy, the two conf I've given seems to work, and since I've seen some request about it on this list, enjoy, here there are.

Have a nice day,

Nicolas

Tobias Oberstein

unread,
Oct 26, 2014, 8:15:16 AM10/26/14
to autob...@googlegroups.com
Hi Nicolas,

good to hear you got the Python hello world working. Btw, you can enable
transport level logging in the node config by adding a "debug" attribute
like this:

"transports": [
{
"type": "web",
"endpoint": {
"type": "tcp",
"port": 8080
},
"paths": {
"/": {
"type": "static",
"directory": "../web"
},
"ws": {
"type": "websocket",
"debug": true
}
}
}
]

Below is an example of what the log looks like then, e.g. you can see a
WebSocket opening handshake being performed etc etc.

If you did have Nginx and/or HAproxy working in front of Crossbar.io,
that would be very useful info to share. If you have a couple of
minutes, probably add something to

https://github.com/crossbario/crossbar/wiki/Reverse%20Proxies

And of course a blog post or the like on a complete app front- to end
like you mention would be really cool!

What would you like to try? If you describe, maybe I can help in quickly
evaluating features you are interested in ..

Cheers,
/Tobias


$ crossbar start
2014-10-26 13:01:08+0100 [Controller 7112] Log opened.
2014-10-26 13:01:08+0100 [Controller 7112]
============================== Crossbar.io ==============================

2014-10-26 13:01:08+0100 [Controller 7112] Crossbar.io 0.9.9 starting
2014-10-26 13:01:10+0100 [Controller 7112] Running on CPython using
IOCPReactor reactor
2014-10-26 13:01:10+0100 [Controller 7112] Starting from node
directory c:\Temp\node2\.crossbar
2014-10-26 13:01:10+0100 [Controller 7112] Starting from local
configuration 'c:\Temp\node2\.crossbar\config.json'
2014-10-26 13:01:10+0100 [Controller 7112] Warning, could not set
process title (setproctitle not installed)
2014-10-26 13:01:10+0100 [Controller 7112] No WAMPlets detected in
enviroment.
2014-10-26 13:01:10+0100 [Controller 7112] Starting Router with ID
'worker1' ..
2014-10-26 13:01:10+0100 [Controller 7112] Entering reactor event loop ...
2014-10-26 13:01:11+0100 [Router 3604] Log opened.
2014-10-26 13:01:11+0100 [Router 3604] Warning: could not set
worker process title (setproctitle not installed)
2014-10-26 13:01:12+0100 [Router 3604] Running under CPython using
IOCPReactor reactor
2014-10-26 13:01:13+0100 [Router 3604] Entering event loop ..
2014-10-26 13:01:13+0100 [Controller 7112] Router with ID 'worker1'
and PID 3604 started
2014-10-26 13:01:13+0100 [Controller 7112] Router 'worker1': realm
'realm1' started
2014-10-26 13:01:13+0100 [Controller 7112] Router 'worker1': role
'role1' started on realm 'realm1'
2014-10-26 13:01:13+0100 [Controller 7112] Router 'worker1': transport
'transport1' started
2014-10-26 13:01:13+0100 [Controller 7112] Starting Container with ID
'worker2' ..
2014-10-26 13:01:13+0100 [Router 3604] Site starting on 8080
2014-10-26 13:01:13+0100 [Container 336] Log opened.
2014-10-26 13:01:13+0100 [Container 336] Warning: could not set
worker process title (setproctitle not installed)
2014-10-26 13:01:13+0100 [Container 336] Trying to install
explicitly specified Twisted reactor 'select'
2014-10-26 13:01:14+0100 [Container 336] Running under CPython using
SelectReactor reactor
2014-10-26 13:01:15+0100 [Container 336] Entering event loop ..
2014-10-26 13:01:15+0100 [Controller 7112] Container with ID 'worker2'
and PID 336 started
2014-10-26 13:01:15+0100 [Controller 7112] Container 'worker2':
component 'component1' started
2014-10-26 13:01:15+0100 [Router 3604] [('debug', True,
'CrossbarWampWebSocketServerFactory'),
2014-10-26 13:01:15+0100 [Router 3604] ('debugCodePaths', False,
'CrossbarWampWebSocketServerFactory'),
2014-10-26 13:01:15+0100 [Router 3604] ('logOctets', True,
'CrossbarWampWebSocketServerFactory'),
2014-10-26 13:01:15+0100 [Router 3604] ('logFrames', True,
'CrossbarWampWebSocketServerFactory'),
2014-10-26 13:01:15+0100 [Router 3604] ('trackTimings', False,
'CrossbarWampWebSocketServerFactory'),
2014-10-26 13:01:15+0100 [Router 3604] ('allowHixie76', True,
'CrossbarWampWebSocketServerFactory'),
2014-10-26 13:01:15+0100 [Router 3604] ('utf8validateIncoming',
True, 'CrossbarWampWebSocketServerFactory'),
2014-10-26 13:01:15+0100 [Router 3604] ('applyMask', True,
'CrossbarWampWebSocketServerFactory'),
2014-10-26 13:01:15+0100 [Router 3604] ('maxFramePayloadSize', 0,
'CrossbarWampWebSocketServerFactory'),
2014-10-26 13:01:15+0100 [Router 3604] ('maxMessagePayloadSize',
0, 'CrossbarWampWebSocketServerFactory'),
2014-10-26 13:01:15+0100 [Router 3604] ('autoFragmentSize', 0,
'CrossbarWampWebSocketServerFactory'),
2014-10-26 13:01:15+0100 [Router 3604] ('failByDrop', False,
'CrossbarWampWebSocketServerFactory'),
2014-10-26 13:01:15+0100 [Router 3604] ('echoCloseCodeReason',
False, 'CrossbarWampWebSocketServerFactory'),
2014-10-26 13:01:15+0100 [Router 3604] ('openHandshakeTimeout',
0.0, 'CrossbarWampWebSocketServerFactory'),
2014-10-26 13:01:15+0100 [Router 3604] ('closeHandshakeTimeout',
0.0, 'CrossbarWampWebSocketServerFactory'),
2014-10-26 13:01:15+0100 [Router 3604] ('tcpNoDelay', True,
'CrossbarWampWebSocketServerFactory'),
2014-10-26 13:01:15+0100 [Router 3604] ('autoPingInterval', 0,
'CrossbarWampWebSocketServerFactory'),
2014-10-26 13:01:15+0100 [Router 3604] ('autoPingTimeout', 0,
'CrossbarWampWebSocketServerFactory'),
2014-10-26 13:01:15+0100 [Router 3604] ('autoPingSize', 4,
'CrossbarWampWebSocketServerFactory'),
2014-10-26 13:01:15+0100 [Router 3604] ('versions', [0, 8, 13],
'CrossbarWampWebSocketServerFactory'),
2014-10-26 13:01:15+0100 [Router 3604] ('webStatus', True,
'CrossbarWampWebSocketServerFactory'),
2014-10-26 13:01:15+0100 [Router 3604]
('requireMaskedClientFrames', True, 'CrossbarWampWebSocketServerFactory'),
2014-10-26 13:01:15+0100 [Router 3604] ('maskServerFrames', False,
'CrossbarWampWebSocketServerFactory'),
2014-10-26 13:01:15+0100 [Router 3604] ('perMessageCompressionAccept',
2014-10-26 13:01:15+0100 [Router 3604] <function <lambda> at
0x03E65EB0>,
2014-10-26 13:01:15+0100 [Router 3604]
'CrossbarWampWebSocketServerFactory'),
2014-10-26 13:01:15+0100 [Router 3604] ('serveFlashSocketPolicy',
False, 'CrossbarWampWebSocketServerFactory'),
2014-10-26 13:01:15+0100 [Router 3604] ('flashSocketPolicy',
2014-10-26 13:01:15+0100 [Router 3604] u'<cross-domain-policy>\n
<allow-access-from domain="*" to-ports="*" />\n</cross-domain-pol
icy>\x00',
2014-10-26 13:01:15+0100 [Router 3604]
'CrossbarWampWebSocketServerFactory')]
2014-10-26 13:01:15+0100 [Router 3604] connection accepted from
peer 127.0.0.1:1057
2014-10-26 13:01:15+0100 [Router 3604] RX Octets from
127.0.0.1:1057 : octets =
474554202f777320485454502f312e310d0a557067726164653a20
576562536f636b65740d0a5365632d576562736f636b65742d56657273696f6e3a2031330d0a5365632d576562736f636b65742d50726f746f636f6c3a2077616d702e322e6d
73677061636b2e626174636865642c77616d702e322e6d73677061636b2c77616d702e322e6a736f6e2e626174636865642c77616d702e322e6a736f6e0d0a436f6e6e656374
696f6e3a20557067726164650d0a5365632d576562736f636b65742d4b65793a2071556f76306269654b7261787576424f6d4d4f6d55673d3d0d0a557365722d4167656e743a
204175746f6261686e507974686f6e2f302e392e320d0a486f73743a203132372e302e302e313a383038300d0a507261676d613a206e6f2d63616368650d0a43616368652d43
6f6e74726f6c3a206e6f2d63616368650d0a0d0a
2014-10-26 13:01:15+0100 [Router 3604] received HTTP request:
2014-10-26 13:01:15+0100 [Router 3604] GET /ws HTTP/1.1
2014-10-26 13:01:15+0100 [Router 3604] Upgrade: WebSocket
2014-10-26 13:01:15+0100 [Router 3604] Sec-Websocket-Version: 13
2014-10-26 13:01:15+0100 [Router 3604] Sec-Websocket-Protocol:
wamp.2.msgpack.batched,wamp.2.msgpack,wamp.2.json.batched,wamp.2.json
2014-10-26 13:01:15+0100 [Router 3604] Connection: Upgrade
2014-10-26 13:01:15+0100 [Router 3604] Sec-Websocket-Key:
qUov0bieKraxuvBOmMOmUg==
2014-10-26 13:01:15+0100 [Router 3604] User-Agent:
AutobahnPython/0.9.2
2014-10-26 13:01:15+0100 [Router 3604] Host: 127.0.0.1:8080
2014-10-26 13:01:15+0100 [Router 3604] Pragma: no-cache
2014-10-26 13:01:15+0100 [Router 3604] Cache-Control: no-cache
2014-10-26 13:01:15+0100 [Router 3604] received HTTP status line
in opening handshake : GET /ws HTTP/1.1
2014-10-26 13:01:15+0100 [Router 3604] received HTTP headers in
opening handshake : {u'upgrade': u'WebSocket', u'sec-websocket-version
': u'13', u'sec-websocket-protocol':
u'wamp.2.msgpack.batched,wamp.2.msgpack,wamp.2.json.batched,wamp.2.json', u'host':
u'127.0.0.1:8080', u
'sec-websocket-key': u'qUov0bieKraxuvBOmMOmUg==', u'user-agent':
u'AutobahnPython/0.9.2', u'connection': u'Upgrade', u'pragma': u'no-cache',
u'cache-control': u'no-cache'}
2014-10-26 13:01:15+0100 [Router 3604] Cookie tracking disabled on
WebSocket connection <crossbar.router.protocol.CrossbarWampWebSocke
tServerProtocol instance at 0x03E8FEB8>
2014-10-26 13:01:15+0100 [Router 3604] sending HTTP response:
2014-10-26 13:01:15+0100 [Router 3604] HTTP/1.1 101 Switching
Protocols
2014-10-26 13:01:15+0100 [Router 3604] Server: Crossbar/0.9.9
2014-10-26 13:01:15+0100 [Router 3604] Upgrade: WebSocket
2014-10-26 13:01:15+0100 [Router 3604] Connection: Upgrade
2014-10-26 13:01:15+0100 [Router 3604] Sec-WebSocket-Protocol:
wamp.2.msgpack.batched
2014-10-26 13:01:15+0100 [Router 3604] Sec-WebSocket-Accept:
iSMG8AAK+PbtrNvOXvAnzevJkeA=
2014-10-26 13:01:15+0100 [Router 3604] TX Octets to 127.0.0.1:1057
: sync = False, octets = 485454502f312e312031303120537769746368696e
672050726f746f636f6c730d0a5365727665723a2043726f73736261722f302e392e390d0a557067726164653a20576562536f636b65740d0a436f6e6e656374696f6e3a2055
7067726164650d0a5365632d576562536f636b65742d50726f746f636f6c3a2077616d702e322e6d73677061636b2e626174636865640d0a5365632d576562536f636b65742d
4163636570743a2069534d473841414b2b506274724e764f5876416e7a65764a6b65413d0d0a0d0a
2014-10-26 13:01:15+0100 [Container 336] session joined
2014-10-26 13:01:15+0100 [Container 336] connected to database
2014-10-26 13:01:15+0100 [Container 336] ok, pusher is listening on
PostgreSQL NOTIFY channel 'crossbar_pubsub_event'' ...
2014-10-26 13:01:15+0100 [Router 3604] RX Octets from
127.0.0.1:1057 : octets =
82bceabc8c39eabc8c0179bd2a4b8fdde054db3d294b85d0e94a6e
16ff4c88cfef4b83dee94b6a15fc4c88d0e54a82d9feb94cdfed5586d9feb94cdfed5586d9e9b9
2014-10-26 13:01:15+0100 [Router 3604] RX Frame from
127.0.0.1:1057 : fin = True, rsv = 0, opcode = 2, mask = eabc8c39,
length = 60, p
ayload =
000000389301a67265616c6d3181a5726f6c657384aa7375627363726962657280a97075626c697368657280a663616c6c657280a663616c6c656580
2014-10-26 13:01:15+0100 [Router 3604] RX WAMP HELLO Message
(realm = realm1, roles = [<autobahn.wamp.role.RoleSubscriberFeatures inst
ance at 0x03EA73A0>, <autobahn.wamp.role.RolePublisherFeatures instance
at 0x03EA73F0>, <autobahn.wamp.role.RoleCallerFeatures instance at 0
x03EA7418>, <autobahn.wamp.role.RoleCalleeFeatures instance at
0x03EA74B8>], authmethods = None, authid = None)
2014-10-26 13:01:15+0100 [Router 3604] TX WAMP WELCOME Message
(session = 710215819436663, roles = [<autobahn.wamp.role.RoleBrokerFeat
ures instance at 0x03E79C88>, <autobahn.wamp.role.RoleDealerFeatures
instance at 0x03E79D28>], authid = m4AMKfhyiq9FehatdMgMdW_L, authrole =
anonymous, authmethod = anonymous, authprovider = None)
2014-10-26 13:01:15+0100 [Router 3604] TX Frame to 127.0.0.1:1057
: fin = True, rsv = 0, opcode = 2, mask = -, length = 258, repeat_le
ngth = None, chopsize = None, sync = False, payload =
000000fe9302cf000285f001a1a27784a861757468726f6c65a9616e6f6e796d6f7573aa617574686d6574
686f64a9616e6f6e796d6f7573a5726f6c657382a662726f6b657281a8666561747572657383b87075626c69736865725f6964656e74696669636174696f6ec3b37075626c69
736865725f6578636c7573696f6ec3bd737562736372696265725f626c61636b77686974655f6c697374696e67c3a66465616c657281a8666561747572657382b870726f6772
6573736976655f63616c6c5f726573756c7473c3b563616c6c65725f6964656e74696669636174696f6ec3a6617574686964b86d34414d4b6668796971394665686174644d67
4d64575f4c
2014-10-26 13:01:15+0100 [Router 3604] TX Octets to 127.0.0.1:1057
: sync = False, octets = 827e0102000000fe9302cf000285f001a1a27784a8
61757468726f6c65a9616e6f6e796d6f7573aa617574686d6574686f64a9616e6f6e796d6f7573a5726f6c657382a662726f6b657281a8666561747572657383b87075626c69
736865725f6964656e74696669636174696f6ec3b37075626c69736865725f6578636c7573696f6ec3bd737562736372696265725f626c61636b77686974655f6c697374696e
67c3a66465616c657281a8666561747572657382b870726f67726573736976655f63616c6c5f726573756c7473c3b563616c6c65725f6964656e74696669636174696f6ec3a6
617574686964b86d34414d4b6668796971394665686174644d674d64575f4c
2014-10-26 13:01:23+0100 [Router 3604] RX Octets from
127.0.0.1:1057 : octets =
82c165ed1a7d65ed1a40f3fdd57d6fb34c9e08e2bdfdd78e75104b
88621c089d76184b99750d0c8e2bee72eab61500817612459a750f09893bffc68b7512c68f7b0fc68f7b074f
2014-10-26 13:01:23+0100 [Router 3604] RX Frame from
127.0.0.1:1057 : fin = True, rsv = 0, opcode = 2, mask = 65ed1a7d,
length = 65, p
ayload =
0000003d9610cf000a5e56e36d0fa780b2636f6d2e6578616d706c652e746f70696331931707ac68656c6c6f20776f726c642182a3666f6fa3626172a362617a2a
2014-10-26 13:01:23+0100 [Router 3604] RX WAMP PUBLISH Message
(request = 2918477042880423, topic = com.example.topic1, args = [23, 7,
u'hello world!'], kwargs = {u'foo': u'bar', u'baz': 42}, acknowledge =
None, excludeMe = None, exclude = None, eligible = None, discloseMe
= None)
2014-10-26 13:01:23+0100 [Container 336] event published to topic
com.example.topic1
2014-10-26 13:01:29+0100 [Router 3604] RX Octets from
127.0.0.1:1057 : octets =
82c18dcb683f8dcb68021bdba73f8f014250cc238fbf3fa80752a3
ae105ee0bb045aa3bf074fe4a859ac9accc457e8a70450adbc074de1af49bd2ead07502ea9094d2ea90945a7
2014-10-26 13:01:29+0100 [Router 3604] RX Frame from
127.0.0.1:1057 : fin = True, rsv = 0, opcode = 2, mask = 8dcb683f,
length = 65, p
ayload =
0000003d9610cf0002ca2a6f41e8e780b2636f6d2e6578616d706c652e746f70696331931707ac68656c6c6f20776f726c642182a3666f6fa3626172a362617a2a
2014-10-26 13:01:29+0100 [Router 3604] RX WAMP PUBLISH Message
(request = 785233557448935, topic = com.example.topic1, args = [23, 7,
u'hello world!'], kwargs = {u'foo': u'bar', u'baz': 42}, acknowledge =
None, excludeMe = None, exclude = None, eligible = None, discloseMe =
None)
2014-10-26 13:01:29+0100 [Container 336] event published to topic
com.example.topic1
2014-10-26 13:01:34+0100 [Router 3604] [('debug', True,
'CrossbarWampWebSocketServerFactory'),
2014-10-26 13:01:34+0100 [Router 3604] ('debugCodePaths', False,
'CrossbarWampWebSocketServerFactory'),
2014-10-26 13:01:34+0100 [Router 3604] ('logOctets', True,
'CrossbarWampWebSocketServerFactory'),
2014-10-26 13:01:34+0100 [Router 3604] ('logFrames', True,
'CrossbarWampWebSocketServerFactory'),
2014-10-26 13:01:34+0100 [Router 3604] ('trackTimings', False,
'CrossbarWampWebSocketServerFactory'),
2014-10-26 13:01:34+0100 [Router 3604] ('allowHixie76', True,
'CrossbarWampWebSocketServerFactory'),
2014-10-26 13:01:34+0100 [Router 3604] ('utf8validateIncoming',
True, 'CrossbarWampWebSocketServerFactory'),
2014-10-26 13:01:34+0100 [Router 3604] ('applyMask', True,
'CrossbarWampWebSocketServerFactory'),
2014-10-26 13:01:34+0100 [Router 3604] ('maxFramePayloadSize', 0,
'CrossbarWampWebSocketServerFactory'),
2014-10-26 13:01:34+0100 [Router 3604] ('maxMessagePayloadSize',
0, 'CrossbarWampWebSocketServerFactory'),
2014-10-26 13:01:34+0100 [Router 3604] ('autoFragmentSize', 0,
'CrossbarWampWebSocketServerFactory'),
2014-10-26 13:01:34+0100 [Router 3604] ('failByDrop', False,
'CrossbarWampWebSocketServerFactory'),
2014-10-26 13:01:34+0100 [Router 3604] ('echoCloseCodeReason',
False, 'CrossbarWampWebSocketServerFactory'),
2014-10-26 13:01:34+0100 [Router 3604] ('openHandshakeTimeout',
0.0, 'CrossbarWampWebSocketServerFactory'),
2014-10-26 13:01:34+0100 [Router 3604] ('closeHandshakeTimeout',
0.0, 'CrossbarWampWebSocketServerFactory'),
2014-10-26 13:01:34+0100 [Router 3604] ('tcpNoDelay', True,
'CrossbarWampWebSocketServerFactory'),
2014-10-26 13:01:34+0100 [Router 3604] ('autoPingInterval', 0,
'CrossbarWampWebSocketServerFactory'),
2014-10-26 13:01:34+0100 [Router 3604] ('autoPingTimeout', 0,
'CrossbarWampWebSocketServerFactory'),
2014-10-26 13:01:34+0100 [Router 3604] ('autoPingSize', 4,
'CrossbarWampWebSocketServerFactory'),
2014-10-26 13:01:34+0100 [Router 3604] ('versions', [0, 8, 13],
'CrossbarWampWebSocketServerFactory'),
2014-10-26 13:01:34+0100 [Router 3604] ('webStatus', True,
'CrossbarWampWebSocketServerFactory'),
2014-10-26 13:01:34+0100 [Router 3604]
('requireMaskedClientFrames', True, 'CrossbarWampWebSocketServerFactory'),
2014-10-26 13:01:34+0100 [Router 3604] ('maskServerFrames', False,
'CrossbarWampWebSocketServerFactory'),
2014-10-26 13:01:34+0100 [Router 3604] ('perMessageCompressionAccept',
2014-10-26 13:01:34+0100 [Router 3604] <function <lambda> at
0x03E65EB0>,
2014-10-26 13:01:34+0100 [Router 3604]
'CrossbarWampWebSocketServerFactory'),
2014-10-26 13:01:34+0100 [Router 3604] ('serveFlashSocketPolicy',
False, 'CrossbarWampWebSocketServerFactory'),
2014-10-26 13:01:34+0100 [Router 3604] ('flashSocketPolicy',
2014-10-26 13:01:34+0100 [Router 3604] u'<cross-domain-policy>\n
<allow-access-from domain="*" to-ports="*" />\n</cross-domain-pol
icy>\x00',
2014-10-26 13:01:34+0100 [Router 3604]
'CrossbarWampWebSocketServerFactory')]
2014-10-26 13:01:34+0100 [Router 3604] connection accepted from
peer 127.0.0.1:1065
2014-10-26 13:01:34+0100 [Router 3604] RX Octets from
127.0.0.1:1065 : octets =
474554202f777320485454502f312e310d0a4f726967696e3a2068
7474703a2f2f3132372e302e302e313a383038300d0a557067726164653a20776562736f636b65740d0a4163636570742d4c616e67756167653a2064652d44452c64653b713d
302e382c656e2d55533b713d302e362c656e3b713d302e342c66723b713d302e320d0a4163636570742d456e636f64696e673a20677a69702c6465666c6174652c736463680d
0a5365632d576562736f636b65742d56657273696f6e3a2031330d0a5365632d576562736f636b65742d50726f746f636f6c3a2077616d702e322e6a736f6e0d0a436f6e6e65
6374696f6e3a20557067726164650d0a5365632d576562736f636b65742d4b65793a20564e47494e63777936574c65386153347654374d78413d3d0d0a557365722d4167656e
743a204d6f7a696c6c612f352e30202857696e646f7773204e5420362e313b20574f57363429204170706c655765624b69742f3533372e333620284b48544d4c2c206c696b65
204765636b6f29204368726f6d652f33382e302e323132352e313034205361666172692f3533372e33360d0a486f73743a203132372e302e302e313a383038300d0a436f6f6b
69653a2063627469643d56412d544b524161495434346d65514b5a366e357937776b3b2073657373696f6e3d2e654a77397a62454b677a4155514e46664b5739326942614843
70304b756d67486f555a64536c34535246455166596b316b6e397675376a66797a6c417269536f6c35416363454649494e3976724b6e6245616653357678706b5963572d3943
704c4757434630613667747236525371716e487177547a366c314e537a78536d39796a30654d474a333841456f6a6161446842616a417943423731575057704a577079523475
4746575563766a6e316a4f474d587566323639366a535a5a54784c3850344c3031633334412e42796d7a46772e55327a2d3066634f55313372556e76446b4f5a45766d636453
73340d0a507261676d613a206e6f2d63616368650d0a43616368652d436f6e74726f6c3a206e6f2d63616368650d0a5365632d576562736f636b65742d457874656e73696f6e
733a207065726d6573736167652d6465666c6174653b20636c69656e745f6d61785f77696e646f775f626974730d0a0d0a
2014-10-26 13:01:34+0100 [Router 3604] received HTTP request:
2014-10-26 13:01:34+0100 [Router 3604] GET /ws HTTP/1.1
2014-10-26 13:01:34+0100 [Router 3604] Origin: http://127.0.0.1:8080
2014-10-26 13:01:34+0100 [Router 3604] Upgrade: websocket
2014-10-26 13:01:34+0100 [Router 3604] Accept-Language:
de-DE,de;q=0.8,en-US;q=0.6,en;q=0.4,fr;q=0.2
2014-10-26 13:01:34+0100 [Router 3604] Accept-Encoding:
gzip,deflate,sdch
2014-10-26 13:01:34+0100 [Router 3604] Sec-Websocket-Version: 13
2014-10-26 13:01:34+0100 [Router 3604] Sec-Websocket-Protocol:
wamp.2.json
2014-10-26 13:01:34+0100 [Router 3604] Connection: Upgrade
2014-10-26 13:01:34+0100 [Router 3604] Sec-Websocket-Key:
VNGINcwy6WLe8aS4vT7MxA==
2014-10-26 13:01:34+0100 [Router 3604] User-Agent: Mozilla/5.0
(Windows NT 6.1; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/3
8.0.2125.104 Safari/537.36
2014-10-26 13:01:34+0100 [Router 3604] Host: 127.0.0.1:8080
2014-10-26 13:01:34+0100 [Router 3604] Cookie:
cbtid=VA-TKRAaIT44meQKZ6n5y7wk;
session=.eJw9zbEKgzAUQNFfKW92iBaHCp0KumgHoUZdSl4SRFEQfY
k1kn9vu7jfyzlAriSol5AccEFIIN9vrKnbEafS5vxpkYcW-9CpLGWCF0a6gtr6RSqqnHqwTz6l1NSzxSm9yj0eMGJ38AEojaaDhBajAyCB71WPWpJWpyR4uGFWUcvjn1jOGMXuf2696j
SZZTxL8P4L01c34A.BymzFw.U2z-0fcOU13rUnvDkOZEvmcdSs4
2014-10-26 13:01:34+0100 [Router 3604] Pragma: no-cache
2014-10-26 13:01:34+0100 [Router 3604] Cache-Control: no-cache
2014-10-26 13:01:35+0100 [Router 3604] Sec-Websocket-Extensions:
permessage-deflate; client_max_window_bits
2014-10-26 13:01:35+0100 [Router 3604] received HTTP status line
in opening handshake : GET /ws HTTP/1.1
2014-10-26 13:01:35+0100 [Router 3604] received HTTP headers in
opening handshake : {u'origin': u'http://127.0.0.1:8080', u'upgrade':
u'websocket', u'accept-language':
u'de-DE,de;q=0.8,en-US;q=0.6,en;q=0.4,fr;q=0.2', u'accept-encoding':
u'gzip,deflate,sdch', u'sec-websocket
-version': u'13', u'sec-websocket-protocol': u'wamp.2.json', u'host':
u'127.0.0.1:8080', u'sec-websocket-key': u'VNGINcwy6WLe8aS4vT7MxA==',
u'user-agent': u'Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.36
(KHTML, like Gecko) Chrome/38.0.2125.104 Safari/537.36', u'connectio
n': u'Upgrade', u'cookie': u'cbtid=VA-TKRAaIT44meQKZ6n5y7wk;
session=.eJw9zbEKgzAUQNFfKW92iBaHCp0KumgHoUZdSl4SRFEQfYk1kn9vu7jfyzlAriSol5AccE
FIIN9vrKnbEafS5vxpkYcW-9CpLGWCF0a6gtr6RSqqnHqwTz6l1NSzxSm9yj0eMGJ38AEojaaDhBajAyCB71WPWpJWpyR4uGFWUcvjn1jOGMXuf2696jSZZTxL8P4L01c34A.BymzFw.
U2z-0fcOU13rUnvDkOZEvmcdSs4', u'pragma': u'no-cache', u'cache-control':
u'no-cache', u'sec-websocket-extensions': u'permessage-deflate; clie
nt_max_window_bits'}
2014-10-26 13:01:35+0100 [Router 3604] Cookie tracking disabled on
WebSocket connection <crossbar.router.protocol.CrossbarWampWebSocke
tServerProtocol instance at 0x03EA7B20>
2014-10-26 13:01:35+0100 [Router 3604] parsed WebSocket extension
'permessage-deflate' with params '{'client_max_window_bits': [True]}
'
2014-10-26 13:01:35+0100 [Router 3604] client request
permessage-compress extension, but we did not accept any offer
[[PerMessageDefla
teOffer(acceptNoContextTakeover = True, acceptMaxWindowBits = True,
requestNoContextTakeover = False, requestMaxWindowBits = 0)]]
2014-10-26 13:01:35+0100 [Router 3604] sending HTTP response:
2014-10-26 13:01:35+0100 [Router 3604] HTTP/1.1 101 Switching
Protocols
2014-10-26 13:01:35+0100 [Router 3604] Server: Crossbar/0.9.9
2014-10-26 13:01:35+0100 [Router 3604] Upgrade: WebSocket
2014-10-26 13:01:35+0100 [Router 3604] Connection: Upgrade
2014-10-26 13:01:35+0100 [Router 3604] Sec-WebSocket-Protocol:
wamp.2.json
2014-10-26 13:01:35+0100 [Router 3604] Sec-WebSocket-Accept:
7cCquDGJF86cd+RTdy41tGznzeA=
2014-10-26 13:01:35+0100 [Router 3604] TX Octets to 127.0.0.1:1065
: sync = False, octets = 485454502f312e312031303120537769746368696e
672050726f746f636f6c730d0a5365727665723a2043726f73736261722f302e392e390d0a557067726164653a20576562536f636b65740d0a436f6e6e656374696f6e3a2055
7067726164650d0a5365632d576562536f636b65742d50726f746f636f6c3a2077616d702e322e6a736f6e0d0a5365632d576562536f636b65742d4163636570743a20376343
717544474a46383663642b52546479343174477a6e7a65413d0d0a0d0a
2014-10-26 13:01:35+0100 [Router 3604] RX Octets from
127.0.0.1:1065 : octets =
81fe015c24cf97967ffebbb456aaf6fa49feb5ba5fede5f948aae4
b41eb4b5f545a3fbf356edaded06a9f2f750bae5f357edaded06acf6fa48aae5c94dabf2f850a6f1ff47aee3ff4ba1b5ac50bde2f308ede7e44ba8e5f357bcfee04190f4f748
a3c8e441bce2fa50bcb5ac50bde2f359b2bbb447aefbfa41aab5ac5fedf1f345bbe2e441bcb5ac5fede7e44ba8e5f357bcfee04190f4f748a3c8e441bce2fa50bcb5ac50bde2
f359b2bbb454baf5fa4dbcfff356edaded06a9f2f750bae5f357edaded06bce2f457ace5ff46aae5c946a3f6f54fb8ffff50aac8fa4dbce3ff4aa8b5ac50bde2f308ede7e346
a3fee54caae5c941b7f4fa51bcfef94aedade256baf2ba06bfe2f448a6e4fe41bdc8ff40aaf9e24da9fef545bbfef94aedade256baf2eb59e3b5e551ade4f556a6f5f356edad
ed06a9f2f750bae5f357edaded06bfe2f448a6e4fe41bdc8ff40aaf9e24da9fef545bbfef94aedade256baf2eb59b2eacb
2014-10-26 13:01:35+0100 [Router 3604] RX Frame from
127.0.0.1:1065 : fin = True, rsv = 0, opcode = 1, mask = 24cf9796,
length = 348,
payload =
[1,"realm1",{"roles":{"caller":{"features":{"caller_identification":true,"progressive_call_results":true}},"callee":{"features":{"
progressive_call_results":true}},"publisher":{"features":{"subscriber_blackwhite_listing":true,"publisher_exclusion":true,"publisher_identif
ication":true}},"subscriber":{"features":{"publisher_identification":true}}}}]
2014-10-26 13:01:35+0100 [Router 3604] RX WAMP HELLO Message
(realm = realm1, roles = [<autobahn.wamp.role.RoleSubscriberFeatures inst
ance at 0x03EA7EB8>, <autobahn.wamp.role.RolePublisherFeatures instance
at 0x03EA7EE0>, <autobahn.wamp.role.RoleCallerFeatures instance at 0
x03EA7F80>, <autobahn.wamp.role.RoleCalleeFeatures instance at
0x03EA7FA8>], authmethods = None, authid = None)
2014-10-26 13:01:35+0100 [Router 3604] TX WAMP WELCOME Message
(session = 5865569312933781, roles = [<autobahn.wamp.role.RoleBrokerFea
tures instance at 0x03E79C88>, <autobahn.wamp.role.RoleDealerFeatures
instance at 0x03E79D28>], authid = wSpCKgSfN9Ue81a-UgL_kr1R, authrole
= anonymous, authmethod = anonymous, authprovider = None)
2014-10-26 13:01:35+0100 [Router 3604] TX Frame to 127.0.0.1:1065
: fin = True, rsv = 0, opcode = 1, mask = -, length = 321, repeat_le
ngth = None, chopsize = None, sync = False, payload =
[2,5865569312933781,{"authrole":"anonymous","authmethod":"anonymous","roles":{"broker"
:{"features":{"publisher_identification":true,"publisher_exclusion":true,"subscriber_blackwhite_listing":true}},"dealer":{"features":{"progr
essive_call_results":true,"caller_identification":true}}},"authid":"wSpCKgSfN9Ue81a-UgL_kr1R"}]
2014-10-26 13:01:35+0100 [Router 3604] TX Octets to 127.0.0.1:1065
: sync = False, octets = 817e01415b322c3538363535363933313239333337
38312c7b2261757468726f6c65223a22616e6f6e796d6f7573222c22617574686d6574686f64223a22616e6f6e796d6f7573222c22726f6c6573223a7b2262726f6b6572223a
7b226665617475726573223a7b227075626c69736865725f6964656e74696669636174696f6e223a747275652c227075626c69736865725f6578636c7573696f6e223a747275
652c22737562736372696265725f626c61636b77686974655f6c697374696e67223a747275657d7d2c226465616c6572223a7b226665617475726573223a7b2270726f677265
73736976655f63616c6c5f726573756c7473223a747275652c2263616c6c65725f6964656e74696669636174696f6e223a747275657d7d7d2c22617574686964223a22775370
434b6753664e3955653831612d55674c5f6b723152227d5d
2014-10-26 13:01:35+0100 [Router 3604] RX Octets from
127.0.0.1:1065 : octets =
81ad9f75ed74c446df58a942dc43a744dc47aa40df4ca840d846b3
0e9058bd168219b1109515f2058111b1018204f616dc56c2
2014-10-26 13:01:35+0100 [Router 3604] RX Frame from
127.0.0.1:1065 : fin = True, rsv = 0, opcode = 1, mask = 9f75ed74,
length = 45, p
ayload = [32,6717811355287552,{},"com.example.topic1"]
2014-10-26 13:01:35+0100 [Router 3604] RX WAMP SUBSCRIBE Message
(request = 6717811355287552, topic = com.example.topic1, match = exac
t)
2014-10-26 13:01:35+0100 [Router 3604] TX WAMP SUBSCRIBED Message
(request = 6717811355287552, subscription = 1329163192450368)
2014-10-26 13:01:35+0100 [Router 3604] TX Frame to 127.0.0.1:1065
: fin = True, rsv = 0, opcode = 1, mask = -, length = 38, repeat_len
gth = None, chopsize = None, sync = False, payload =
[33,6717811355287552,1329163192450368]
2014-10-26 13:01:35+0100 [Router 3604] TX Octets to 127.0.0.1:1065
: sync = False, octets = 81265b33332c363731373831313335353238373535
322c313332393136333139323435303336385d
2014-10-26 13:01:38+0100 [Container 336] event published to topic
com.example.topic1
2014-10-26 13:01:38+0100 [Router 3604] RX Octets from
127.0.0.1:1057 : octets =
82c1db51225edb5122634d41ed5edf5d331a6c66e0de69324d33f5
345a3fb6214e3bf5254d2eb23213cdcc568e36be3d4e31fb264d2cb73503dc78374d317833432c78334324f1
2014-10-26 13:01:38+0100 [Router 3604] RX Frame from
127.0.0.1:1057 : fin = True, rsv = 0, opcode = 2, mask = db51225e,
length = 65, p
ayload =
0000003d9610cf00040c1144b737c280b2636f6d2e6578616d706c652e746f70696331931707ac68656c6c6f20776f726c642182a3666f6fa3626172a362617a2a
2014-10-26 13:01:38+0100 [Router 3604] RX WAMP PUBLISH Message
(request = 1139168213678018, topic = com.example.topic1, args = [23, 7,
u'hello world!'], kwargs = {u'foo': u'bar', u'baz': 42}, acknowledge =
None, excludeMe = None, exclude = None, eligible = None, discloseMe
= None)
2014-10-26 13:01:38+0100 [Router 3604] TX WAMP EVENT Message
(subscription = 1329163192450368, publication = 8045482664600970, args =
[23, 7, u'hello world!'], kwargs = {u'foo': u'bar', u'baz': 42},
publisher = None)
2014-10-26 13:01:38+0100 [Router 3604] TX Frame to 127.0.0.1:1065
: fin = True, rsv = 0, opcode = 1, mask = -, length = 86, repeat_len
gth = None, chopsize = None, sync = False, payload =
[36,1329163192450368,8045482664600970,{},[23,7,"hello
world!"],{"foo":"bar","baz":42}]
2014-10-26 13:01:38+0100 [Router 3604] TX Octets to 127.0.0.1:1065
: sync = False, octets = 81565b33362c313332393136333139323435303336
382c383034353438323636343630303937302c7b7d2c5b32332c372c2268656c6c6f20776f726c6421225d2c7b22666f6f223a22626172222c2262617a223a34327d5d




Am 26.10.2014 12:30, schrieb Potens:
> Ok,
>
> I've tried with the hello:python template and this is working, so the
> problem is in my code. Nevertheless, I think the question has still some
> interest (being able to debug websocket transport).
>
> I've tried with nginx and haproxy, the two conf I've given seems to
> work, and since I've seen some request about it on this list, enjoy,
> here there are.
>
> Have a nice day,
>
> Nicolas
>
>
> On Sunday, October 26, 2014 10:32:45 AM UTC+1, Potens wrote:
>
> Sorry, just forgot to sign.
>
> Have a nice day,
>
> Nicolas
>
> On Sunday, October 26, 2014 10:32:03 AM UTC+1, Potens wrote:
>
> Hello,
>
> I'm evaluating crossbar.io <http://crossbar.io> on a project of
> <https://gist.github.com/potens1/bc2dc83cb88222cfc29a>
>
>
> --
> You received this message because you are subscribed to the Google
> Groups "Autobahn" group.
> To unsubscribe from this group and stop receiving emails from it, send
> an email to autobahnws+...@googlegroups.com
> <mailto:autobahnws+...@googlegroups.com>.
> To post to this group, send email to autob...@googlegroups.com
> <mailto:autob...@googlegroups.com>.
> To view this discussion on the web visit
> https://groups.google.com/d/msgid/autobahnws/d2da3dd9-f9a3-4689-810e-6d3bb309b251%40googlegroups.com
> <https://groups.google.com/d/msgid/autobahnws/d2da3dd9-f9a3-4689-810e-6d3bb309b251%40googlegroups.com?utm_medium=email&utm_source=footer>.
> For more options, visit https://groups.google.com/d/optout.

Potens

unread,
Oct 26, 2014, 11:09:44 AM10/26/14
to autob...@googlegroups.com
Hi Tobias,

Thx for your answer ! I'm sorry, I didn't found this parameter, I found it for the longpoll transport, but not for the websocket... (need to be more used to the structure of your source code to know where to find things ;-) )

What I'm doing on this little home project: I've some temperature and humidity sensors at my home connected with zigbee, those sensors emit the temperature and humidity every minute and following some table, those are compared to another zigbee sensor outside to do diff on temperature and humidity. If the comparison tells it (and dependant to some hours constraints) an actuator on a Heat Recovery Ventilation System starts it or stops it (but this can be also overridden manually).

The system is also connected to some solar panels to count the energy generated "real time".

What I've still to do here is to be able to save this in my DB but twisted does not help to do that (not compatible, I'm using mongoDB) and the low memory on the system restrict it to manage the db on it, so, I would like to have another crossbar instance running on another server, but I will have to find how to make all this system resilient to errors (i.e. network unavailable, server down, auto reconnect, queuing of results while the db is unavailable and recovery-send queue when db is available).
I also have to explore the security system of crossbar/autobhan (i.e: not allowing everyone to start the HRV), by the way, I would like to have a look to implement jwt as authentication system, do you have an interest in this ? (I don't like cookies, that's why I would like to look at this, it is pretty well used on the net)

Lots of things to learn (but interesting), I'm very confident with gevent but not at all with twisted so I have to warp a lot my way of programming to adapt.

I will add the haproxy conf (I'm sure it is working) and nginx (still have to be able to use it with my code, it is working with the hello demo), not right now, but soon ;-)

For the other project (professional one), I can't describe it too deep (have to discuss that with by boss) but short version:

We set wireless sensors on customers sites, those data are pushed in a little gateway on the customer site and then pushed to our main server.

The customers can see their data through a (SPA) web interface on our server and set orders of data acquisitions there. For the time being, the gateways connect to our server to get the orders every 5 min (i.e) and send their data at the same time (plain stupid rest interface).

What I've to check is the ability of crossbar to work if connections between gateways and servers is down (we can't be sure about the connectivity, at all), how to manage the security to be sure data are not available to people that should not (same for orders), how to implement the acl (because we have some complex acl), how to reimplement everything with twisted instead of gevent, mix that with wsgi, ect, ect (lot of work ;-) )

Thx a lot for your help, your time, and your code !

Nicolas
Reply all
Reply to author
Forward
0 new messages