Hi Andrew,
Great. That's good to know. :)
I'll try it out right away.
Yeah, I read somewhere that it is available from Channels 2. I am using the
latest version anyways. :)
Well, pardon my usage. I am not 100% sure about what exactly these terms
(websocket, asgi etc) mean exactly (I'm very new to all this), so I may
have made a few mistakes when talking about them.
As for what happens when connection is lost or reconnects, I'm planning to
store the state in a session variable as well to be safe.
Post by Andrew GodwinHi!
You can indeed have things persist for the entire scope - the Consumer (or
any other ASGI app) does exactly this, and so if you're in a consumer you
can just store things on "self". That'll be tied to a specific socket and
garbage-collected once it's done (on Channels 2 only - channels 1 didn't do
this!)
Of course, I am assuming you're meaning "per websocket". If you want to
use another protocol - like the ASGI Telegram server I cooked up - those
scopes are per-user but sometimes get garbage collected after an idle
period with no communication. You should think about this even for
WebSocket; what happens if the user's socket reconnects? Does the state
machine reset? If not, you need to store state somewhere externally from
the socket handling code.
Andrew
Andrew
Hello all,
Very excited to discover the Channels project. I think it could be
exactly what I was looking for. I am going through the documentation and
seeing how it works right now, but I would really appreciate if someone
could tell me if it will help me do what I want.
I am making a chatbot, which is state dependent. The dialogue delivery
and state management is handled by a Finite State Machine built using the
transitions (pytransitions <https://github.com/pytransitions/transitions>)
library. So my chatbot is a python object, which transitions from one state
to another based on the users input. So to run the chatbot (per user per
session) I need something exactly like the scope provided by channels,
something that lasts for more than one request.
My question is *if I can have a python object instantiated per scope and
have it persist for the duration of the scope*, so that for each user I
can have a different object keeping track of which state the user is in and
returning responses based on the state?
Any help would be appreciated, as I am very inexperienced on things
related to web (websockets, WSGI, ASGI etc.).
Thanks.
--
You received this message because you are subscribed to the Google Groups
"Django users" group.
To unsubscribe from this group and stop receiving emails from it, send an
<javascript:>.
Visit this group at https://groups.google.com/group/django-users.
To view this discussion on the web visit
https://groups.google.com/d/msgid/django-users/142cb856-17f7-4cf1-9f3b-87d80e0ca5f8%40googlegroups.com
<https://groups.google.com/d/msgid/django-users/142cb856-17f7-4cf1-9f3b-87d80e0ca5f8%40googlegroups.com?utm_medium=email&utm_source=footer>
.
For more options, visit https://groups.google.com/d/optout.
--
You received this message because you are subscribed to the Google Groups "Django users" group.
To unsubscribe from this group and stop receiving emails from it, send an email to django-users+***@googlegroups.com.
To post to this group, send email to django-***@googlegroups.com.
Visit this group at https://groups.google.com/group/django-users.
To view this discussion on the web visit https://groups.google.com/d/msgid/django-users/0a2dc931-cd92-43ab-a6ee-9536dd018f9f%40googlegroups.com.
For more options, visit https://groups.google.com/d/optout.