1: <?php
2: namespace Ratchet\Wamp;
3: use Ratchet\ComponentInterface;
4: use Ratchet\ConnectionInterface;
5:
6: /**
7: * An extension of Ratchet\ComponentInterface to server a WAMP application
8: * onMessage is replaced by various types of messages for this protocol (pub/sub or rpc)
9: */
10: interface WampServerInterface extends ComponentInterface {
11: /**
12: * An RPC call has been received
13: * @param \Ratchet\ConnectionInterface $conn
14: * @param string $id The unique ID of the RPC, required to respond to
15: * @param string|Topic $topic The topic to execute the call against
16: * @param array $params Call parameters received from the client
17: */
18: function onCall(ConnectionInterface $conn, $id, $topic, array $params);
19:
20: /**
21: * A request to subscribe to a topic has been made
22: * @param \Ratchet\ConnectionInterface $conn
23: * @param string|Topic $topic The topic to subscribe to
24: */
25: function onSubscribe(ConnectionInterface $conn, $topic);
26:
27: /**
28: * A request to unsubscribe from a topic has been made
29: * @param \Ratchet\ConnectionInterface $conn
30: * @param string|Topic $topic The topic to unsubscribe from
31: */
32: function onUnSubscribe(ConnectionInterface $conn, $topic);
33:
34: /**
35: * A client is attempting to publish content to a subscribed connections on a URI
36: * @param \Ratchet\ConnectionInterface $conn
37: * @param string|Topic $topic The topic the user has attempted to publish to
38: * @param string $event Payload of the publish
39: * @param array $exclude A list of session IDs the message should be excluded from (blacklist)
40: * @param array $eligible A list of session Ids the message should be send to (whitelist)
41: */
42: function onPublish(ConnectionInterface $conn, $topic, $event, array $exclude, array $eligible);
43: }
44: