re-factor so RawSocket options can be passed as well, and slightly better error-message
This commit is contained in:
parent
3df75ecd90
commit
0545d46477
|
@ -153,35 +153,35 @@ def _create_transport_factory(reactor, transport, session_factory):
|
|||
Create a WAMP-over-XXX transport factory.
|
||||
"""
|
||||
if transport.type == 'websocket':
|
||||
# FIXME: forward WebSocket options
|
||||
serializers = _create_transport_serializers(transport)
|
||||
factory = WampWebSocketClientFactory(session_factory, url=transport.url, serializers=serializers)
|
||||
# set the options one at a time so we can give user better feedback
|
||||
for k, v in transport.options.items():
|
||||
try:
|
||||
factory.setProtocolOptions(**{k: v})
|
||||
except (TypeError, KeyError):
|
||||
# this allows us to document options as snake_case
|
||||
# until everything internally is upgraded from
|
||||
# camelCase
|
||||
try:
|
||||
factory.setProtocolOptions(
|
||||
**{_camel_case_from_snake_case(k): v}
|
||||
)
|
||||
except (TypeError, KeyError) as e:
|
||||
raise Exception(
|
||||
"Unknown transport option: {}={}".format(k, v)
|
||||
)
|
||||
return factory
|
||||
|
||||
elif transport.type == 'rawsocket':
|
||||
# FIXME: forward RawSocket options
|
||||
serializer = _create_transport_serializer(transport.serializers[0])
|
||||
return WampRawSocketClientFactory(session_factory, serializer=serializer)
|
||||
factory = WampRawSocketClientFactory(session_factory, serializer=serializer)
|
||||
|
||||
else:
|
||||
assert(False), 'should not arrive here'
|
||||
|
||||
# set the options one at a time so we can give user better feedback
|
||||
for k, v in transport.options.items():
|
||||
try:
|
||||
factory.setProtocolOptions(**{k: v})
|
||||
except (TypeError, KeyError):
|
||||
# this allows us to document options as snake_case
|
||||
# until everything internally is upgraded from
|
||||
# camelCase
|
||||
try:
|
||||
factory.setProtocolOptions(
|
||||
**{_camel_case_from_snake_case(k): v}
|
||||
)
|
||||
except (TypeError, KeyError) as e:
|
||||
raise ValueError(
|
||||
"Unknown {} transport option: {}={}".format(transport.type, k, v)
|
||||
)
|
||||
return factory
|
||||
|
||||
|
||||
def _create_transport_endpoint(reactor, endpoint_config):
|
||||
"""
|
||||
|
|
Loading…
Reference in New Issue