WAMPv2 example docs

This commit is contained in:
Tobias Oberstein
2014-01-05 22:46:17 +01:00
parent 3bdbf6e4f8
commit 043685b9a8

View File

@@ -158,6 +158,8 @@ else:
### Registration with invocation details
For an endpoint to receive invocation details during invocation, the callable registered for the endpoint must consume a keyword argument of type `autobahn.wamp.types.Invocation`:
```python
def deleteTask(taskId, invocation = Invocation):
# delete "task" ..
@@ -183,7 +185,7 @@ def deleteTask(invocation = Invocation):
# delete "task" ..
db.deleteTask(taskId)
# .. and notify all but the caller
session.publish("com.myapp.task.{}.on_delete".format(taskId), PublishOptions(exclude = [invocation.caller])
session.publish("com.myapp.task.{}.on_delete".format(taskId))
yield session.register("com.myapp.task..delete", deleteTask)
```
@@ -194,4 +196,29 @@ This endpoint can now be called
yield session.call("com.myapp.task.t130.delete")
```
### Progressive invocations
The following endpoint will produce progressive call results:
```python
def longop(n, invocation = Invocation):
for i in range(n):
invocation.progress(i)
yield sleep(1)
return n
yield session.register("com.myapp.longop", longop)
```
and can be called like this
```python
def processedSoFar(i):
print("{} items processed so far ..".format(i))
total = yield session.call("com.myapp.longop", 10, options = CallOptions(onProgress = processedSoFar))
print("{} items deleted in total.".format(total))
```
### Distributed endpoints