Node.js - Usando WebSockets
13127 단어 ptbrnodewebdevjavascript
fetch()
ou Axios porque o servidor não pode se comunicar com o cliente a menos que o cliente enveie uma solicitação primeiro.WebSockets는 더 유연하게 사용할 수 있고 더 쉽게 구현할 수 있습니다. OS WebSockets는 절대적으로 필요한 경우에만 필요에 따라 필요에 따라 필요에 따라 필요에 따라 전환할 수 있습니다. Neste artigo, você aprenderá como construir um aplicativo simples de bate-papo em tempo real usando WebSockets.
O 서버 WebSocket
Opacote
ws
npm는 Node.js의 WebSocket에서 "확실한"라이브러리입니다. 사용 가능한 포트Socket.IO, Socket.IO는 고급 WebSockets의 추상화, 구현protocolo WebSocket에 사용됩니다.Abaixo está um example básico de um servidor WebSocket que rastreia todos os sockets abertos e envia mensagens de entrada para todos os sockets abertos. Você pode pensar nisso como um simples servidor de bate-papo: quando uma pessoa envia uma mensagem, o servidor a transmitter para todos que estão ouvindo.
const WebSocket = require('ws');
const server = new WebSocket.Server({
port: 8080
});
let sockets = [];
server.on('connection', function(socket) {
// Adicionamos cada nova conexão/socket ao array `sockets`
sockets.push(socket);
// Quando você receber uma mensagem, enviamos ela para todos os sockets
socket.on('message', function(msg) {
sockets.forEach(s => s.send(msg));
});
// Quando a conexão de um socket é fechada/disconectada, removemos o socket do array
socket.on('close', function() {
sockets = sockets.filter(s => s !== socket);
});
});
클라이언트 WebSocket 및 Node.js
WebSocket은 구성 요소를 연결하고 클라이언트와 서버를 연결합니다. No exemplo acima, você criou um servidor. 클라이언트는 WebSocket에 연결하기 위해 먼저 요청하고 WebSocket에 연결하기 위해 요청하고 응답하도록 서비스를 제공합니다.
Node.js를 사용하여 WebSocket 클라이언트를 호출할 수 있습니다
ws
. Logitech WebSocket의 테스터는 WebSocket을 사용하여 백엔드 서비스를 제공할 수 있습니다. Abaixo está um exemplo de um cliente WebSocket que se comunica com o servidor acima.let clients = [
new WebSocket('ws://localhost:8080'),
new WebSocket('ws://localhost:8080')
];
clients.map(client => {
client.on('message', msg => console.log(msg));
});
// Esperamos o cliente conectar com o servidor usando async/await
await new Promise(resolve => clients[0].once('open', resolve));
// Imprimi "Hello!" duas vezes, um para cada cliente
clients[0].send('Hello!');
Cliente WebSocket no navegador
A maioria dos navegadores modernos oferece suporte para WebSockets por padrão . 그러나 Internet Explorer 9 또는 Opera Mini를 지원하는 클래스
WebSocket
또는 탐색 도구ws
또는 번역 도구를 사용할 수 없습니다. Abaixo está uma imagemda seção de WebSockets do caniuse.com
.E aqui está um exemplo de uma página de chat que se conecta ao servidor do início desse artigo:
<html>
<head>
<script type="text/javascript">
const ws = new WebSocket('ws://localhost:8080');
// A classe `WebSocket` nos navegadores tem uma sintaxe um pouco diferente de `ws`
// Ao invés da sintax de EventEmmiter `on('open')`, você adiciona um callback
// a propriedade `onopen`.
ws.onopen = function() {
document.querySelector('#send').disabled = false;
document.querySelector('#send').addEventListener('click', function() {
ws.send(document.querySelector('#message').value);
});
};
ws.onmessage = function(msg) {
document.querySelector('#messages').innerHTML += `<div>${msg.data}</div>`;
};
</script>
</head>
<body>
<h1>Chat</h1>
<div>
<input id="message" placeholder="Message">
<button id="send" disabled="true">Send</button>
</div>
<div id="messages">
</div>
</body>
</html>
WebSockets no navegador têm uma sintaxe ligeiramente diferente para aguardar a conexão e receber mensagens do servidor 에 유의하십시오. Ao invés de
on('message', messageHandler)
, você deve escrever onmessage = messageHandler
.크레딧
WebSockets in Node.js , escrito originalmente por .
Reference
이 문제에 관하여(Node.js - Usando WebSockets), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://dev.to/oieduardorabelo/node-js-usando-websockets-1k9j텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)