Emit an event to all watchers of a thing. The event is a string value which you are free to choose. It is possible, but not required, to send extra arguments with the event.
When you emit an event, the event is handled by ThingsDB just as any other event and thus the order in which they are send to the client is guaranteed.
This function generates an event.
Using events enables a user to write code like this example of a ChatRoom in the Python language:
import asyncio from thingsdb.model import Emitter from thingsdb.util import event from thingsdb.client import Client class ChatRoom(Emitter): @event('new-message') def on_new_message(self, msg): pass # do something with the message client = Client() loop = asyncio.get_event_loop() loop.run_until_complete(client.connect('localhost')) loop.run_until_complete(client.authenticate('admin', 'pass')) chat = ChatRoom( client, # ThingsDB Client() instance emitter='', # The 'thing' to watch. Defaults to the # collection root by using an empty string. scope='//stuff') # Collection Scope, defaults the the default # scope of the client. loop.run_forever()
emit([deep], event, ...)
|deep||int (optional)||Specify how deep the arguments must be send with the event. (defaults to
|event||str (required)||Event name to emit.|
|…||any (optional)||Arguments send together with the event.|
This code shows an example using emit():
.emit('new-message', 'Hello Everyone!');
Return value in JSON format