Closed WebDevelopNemanja closed 3 years ago
yes, router and container components must be written using twisted. if you have to use asyncio, you must run it as a guest worker or completely external to crossbar
yes, router and container components must be written using twisted. if you have to use asyncio, you must run it as a guest worker or completely external to crossbar
Hello, @oberstet
Im developing micro framework for WAMP. And i faced with problem Explicitly using 'twisted' already
.
Are you going to develop asyncio implementation for crossbar worker? Or I can write an ApplicationSession only on twisted, which will execute async coroutines.
Can you give some advices?
Thanks for answering
many options, it all depends;) here are some clues, hope that helps!
if you want your framework to be usable in the broadest range of situations, the txaio bare bones style is the way to go (this is what Autobahn is using internally)
if you want the maximum flexibiltiy/support in Crossbar.io, use ApplicationSession/Twisted, and either old- or new-school co-routines
Hello! @oberstet
I used new-school co-routines for Twisted and it works fine!
I wanna get my new overloaded autobahn.twisted.wamp.ApplicationSession
from initialized object attribute (initialized_framework_name.session_factory: autobahn.twisted.wamp.OverLoadedApplicationSession
).
I tried to use type = 'function'
instead of type = 'class'
for crossbar worker configuration, but it does not work
great! good to hear you've got sth working to start=) here are some more hints, maybe that helps:
so if you have a new class XYZ that is derived of autobahn.twisted.wamp.ApplicationSession
, and if that class can be resolved and loaded from the Python that you use to start Crossbar.io, you then can have a Router/Container worker with a config that points to that class, eg here are examples:
find ~/scm/crossbario/crossbar-examples/ -name "*.json" -exec grep -Hi '"type": "class"' {} \;
a run-time object will be created from that class by Crossbar.io code - you can only specify the class
@oberstet , i found it: https://github.com/crossbario/crossbar/blob/4736e67b75bcd3f41be82e86008d9822299809ea/crossbar/worker/__init__.py#L26
what do you think if the loader could traverse through objects?
Example:
timport_object('module.submodule.submodule.submodule.object.object.object.get_session_factory') -> autobahn.twisted.wamp.ApplicationSession
no, this wouldn't work and this isn't required. anyways, sorry, I don't have time for this ..
Hi, I have a problem with to start crossbar on asyncio
Here is simple app:
and the exception stack:
it saids on end that: Explicitly using 'twisted' already
Thank you