Matheo Bonucia
6 months ago
commit
24ce20392c
4 changed files with 61 additions and 0 deletions
@ -0,0 +1,38 @@
|
||||
<!DOCTYPE html> |
||||
<html lang="en"> |
||||
<head> |
||||
<meta charset="UTF-8"> |
||||
<meta name="viewport" content="width=device-width, initial-scale=1.0"> |
||||
<title>Websocket - Cliente</title> |
||||
</head> |
||||
<body> |
||||
<output></output> |
||||
<input type="text"> |
||||
|
||||
<script> |
||||
const ws = new WebSocket('ws://127.0.0.1:9501/'); |
||||
const input = document.querySelector('input'); |
||||
const output = document.querySelector('output'); |
||||
|
||||
ws.addEventListener('open', console.log); |
||||
ws.addEventListener('message', console.log); |
||||
|
||||
ws.addEventListener('message', message => { |
||||
const dados = JSON.parse(message.data); |
||||
if(dados.type === 'chat') { |
||||
output.append('Outro: ' + dados.text, document.createElement('br')); |
||||
} |
||||
}); |
||||
|
||||
input.addEventListener('keypress', e => { |
||||
if(e.code === 'Enter') { |
||||
const valor = input.value; |
||||
output.append('Eu: ' + valor, document.createElement('br')); |
||||
ws.send(valor); |
||||
|
||||
input.value = ''; |
||||
} |
||||
}) |
||||
</script> |
||||
</body> |
||||
</html> |
@ -0,0 +1,20 @@
|
||||
#!/usr/bin/env php |
||||
<?php |
||||
|
||||
use Swoole\WebSocket\Server; |
||||
use Swoole\WebSocket\Frame; |
||||
|
||||
$server = new Server('0.0.0.0', 9501); |
||||
|
||||
$server->on('message', function (Server $server, Frame $mensagem) { |
||||
$conexoes = $server->connections; |
||||
$origem = $mensagem->fd; |
||||
|
||||
foreach ($conexoes as $conexao) { |
||||
if($conexao === $origem) continue; |
||||
$server->push($conexao, json_encode(['type' => 'chat', 'text' => $mensagem->data]) |
||||
); |
||||
} |
||||
}); |
||||
|
||||
$server->start(); |
Loading…
Reference in new issue