Browse Source

Criacao do servidor websocket, criacao de uma exemplo html para comunicacao entre usuarios do socket

master
Matheo Bonucia 6 months ago
commit
24ce20392c
  1. 3
      .vscode/settings.json
  2. 0
      README.md
  3. 38
      index.html
  4. 20
      server.php

3
.vscode/settings.json vendored

@ -0,0 +1,3 @@
{
"php.version": "8.2.15"
}

38
index.html

@ -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>

20
server.php

@ -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…
Cancel
Save