ScriptOutputConsumer
A WebsocketConsumer
child class, which represents the code run when
a client connects to the ws/remotescripts/(?P<script_id>\d+)/$
URL.
Attributes
group_name
This represents the name of the channel_layer
that will be created
and it's always formed based on the script_id
part of the WS URL
(i.e. f"output_{self.script_id}"
).
This, in effect, means that for each remotescript
configuration created,
a separate channel_layer
will be created (e.g. output_1
for remotescript
with id = 1).
Methods
connect
This is run in the backend when a front-end WS client connects.
The script_id
is stored (using the kwargs in the url_route
) so
that the appropriate group_name
can be created.
script_output
When this method is called, an event
dictionary is passed to it.
This contains all the information that the caller wants to push to
the Websocket client connected to a specific channel group.
A message
key is expected to be found in the event
dict, which
is the content which is dumped to JSON and pushed to the front-end
WS client.
This method is run indirectly from the ScriptExecutionBaseView
(views.py
)
via the channel_layer.group_send
function call. This is done by specifying the
type
parameter to be script.output
(see
channels' documentation).