-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathsockets.php
117 lines (82 loc) · 3.1 KB
/
sockets.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
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
<?php
require_once 'core/WebSockets/server.php';
/* $server = new serverWS('localhost', 12345);
$server->listeningSocket($server);
$server->event('on', function($server){
$server->console("Nuevo cliente conectado: ", 'client:address');
$server->response();
});
$server->event('connected', function(){
});
$server->event('message', function($messsage, $client, $server){
$client->send("Hola cliente, resibi tu mensaje ".$messsage);
$server->console('Nuevo mensaje de cliente ', 'client:address');
});
$server->executeClients(); */
/* $server = new serverWS('localhost', 12345);
$server->listeningSocket($server);
$server->event('connected', function($server){
$server->console("New client connected: ", 'client:address');
});
$server->event('disconnected', function($server){
$server->console('Client disconnected: ', 'client:address');
});
$server->event('message', function($messsage, $client, $server){
if($messsage['message'] == 'ping'){
$client->send([
'message' => 'pong'
]);
}
$server->console('The new message of client: ', 'client:address', ' the message was: ', $messsage);
});
$server->executeClients();
*/
$server = new serverWS('localhost', 12345, 1024, 'UTC');
$server->listeningSocket($server);
$server->event('connected', function($client, $server){
$server->console('New client connected ', 'client:address');
});
$server->event('disconnected', function($client, $server){
$server->console('Client disconnected', 'client:address');
});
$server->event('message', function($client, $server){
$server->console('A new message of client', 'client:address');
$messsage = $client->message();
$event = $messsage['event'];
if($event === 'connect'){
$server->session($client->client(), [
'token' => $client->message()['token']
]);
$client->send([
'message' => "The Arduino was connected suscess"
]);
$server->console("New Arduino was connected, the token was: ", $messsage['token']);
}else if($event === 'ping'){
$client->send([
'message' => 'pong'
]);
}
});
$server->event('send', function($client, $server){
require_once 'db.php';
MemoryDatabase::insert('events', [
'userName' => 'This is a username',
'idArduino' => 1,
'licenseArduino' => 'jdcnowehfwecslefj',
'indication' => 'on'
]);
$events = MemoryDatabase::select('events');
$licenesesArduino = $events['licenseArduino'];
$indications = $events['indication'];
if(!empty($licenesesArduino)){
for($i = 0; $i < count($licenesesArduino); $i++){
$license = $licenesesArduino[$i];
if($client->setClientBy('token', $license)){ //Esto es para mandar el mensaje hasta que el cliente exista!
$client->send([
'indication' => $indications[$i] //tienen el mismo indice, por que en la tabla se espera que esten en la misma columna, siempre un indentificador Arduino tiene una indicacion
]);
}
}
}
});
$server->executeClients();