Junior — Middle
Pode explicar o princípio de funcionamento do protocolo WebSocket e como ele garante uma conexão constante entre o servidor e o cliente?
sobes.tech IA
Resposta da IA
WebSocket é um protocolo que fornece uma conexão bidirecional persistente entre o cliente e o servidor sobre TCP. Ao contrário do HTTP clássico, onde o cliente inicia as solicitações, o WebSocket permite que o servidor envie dados ao cliente a qualquer momento.
Princípio de funcionamento:
- O cliente inicia uma solicitação HTTP com o cabeçalho
Upgrade: websocketpara mudar para o protocolo WebSocket. - O servidor confirma a transição e uma conexão persistente é estabelecida.
- Após estabelecer a conexão, o cliente e o servidor podem trocar mensagens em tempo real sem a necessidade de solicitações HTTP repetidas.
Isso permite criar aplicações com baixa latência, como chats, jogos, terminais financeiros.
Exemplo de uso do WebSocket no iOS (Swift):
import Foundation
let url = URL(string: "wss://example.com/socket")!
let webSocketTask = URLSession.shared.webSocketTask(with: url)
webSocketTask.resume()
// Enviar mensagem
let message = URLSessionWebSocketTask.Message.string("Olá servidor!")
webSocketTask.send(message) { error in
if let error = error {
print("Erro ao enviar: \(error)")
}
}
// Receber mensagens
func receive() {
webSocketTask.receive { result in
switch result {
case .failure(let error):
print("Erro ao receber: \(error)")
case .success(let message):
switch message {
case .string(let text):
print("Mensagem recebida: \(text)")
default:
break
}
receive() // continuar ouvindo
}
}
}
receive()
Assim, o WebSocket fornece uma conexão eficiente e persistente para troca de dados em tempo real.