-
Notifications
You must be signed in to change notification settings - Fork 0
/
websocket.resources.php
62 lines (47 loc) · 1.47 KB
/
websocket.resources.php
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
<?php
interface IWebSocketUriHandler{
public function addConnection(IWebSocketConnection $user);
public function removeConnection(IWebSocketConnection $user);
public function onMessage(IWebSocketConnection $user, IWebSocketMessage $msg);
public function onAdminMessage(IWebSocketConnection $user, IWebSocketMessage $msg);
public function setServer(WebSocketServer $server);
public function getConnections();
}
abstract class WebSocketUriHandler implements IWebSocketUriHandler{
/**
*
* Enter description here ...
* @var SplObjectStorage
*/
protected $users;
/**
*
* Enter description here ...
* @var WebSocketServer
*/
protected $server;
public function __construct(){
$this->users = new SplObjectStorage();
}
public function addConnection(IWebSocketConnection $user){
$this->users->attach($user);
}
public function removeConnection(IWebSocketConnection $user){
$this->users->detach($user);
}
public function setServer(WebSocketServer $server){
$this->server = $server;
}
public function say($msg =''){
return $this->server->say($msg);
}
public function send(IWebSocketConnection $client, $str){
return $client->sendString($str);
}
public function onMessage(IWebSocketConnection $user, IWebSocketMessage $msg){}
public function onAdminMessage(IWebSocketConnection $user, IWebSocketMessage $msg){}
//abstract public function onMessage(WebSocketUser $user, IWebSocketMessage $msg);
public function getConnections(){
return $this->users;
}
}