Este artigo exemplo Node.js cria um servidor de bate -papo na web para comunicação instantânea para sua referência. O conteúdo específico é o seguinte
1. Use Nodejs-WebSocket
Nodejs-WebSocket é uma biblioteca de back-end que implementa o protocolo WebSocket escrito com base no Node.js.
Conexão: https://github.com/sitegui/nodejs-websocket.
(1) Instalação
Instale através do NPM no diretório do projeto: NPM Install NodeJS-Websocket
(2) Crie um servidor
// introduzir nodejs-webesocketvar ws = requer ("nodejs-websocket"); // Call CreateServer Método para criar o servidor, e o Conn na função de retorno de chamada é uma instância da conexão var server = ws.create (function (conn) {console.log ("newnection"); // Ouça o evento de texto e o evento de texto é acionado quando o tipo de texto (e o texto ", e" a função de texto) é acionada. + str);2. O cliente usa WebSocket
No cliente, você precisa instanciar um objeto WebSocket: ws = new websocket ("ws: // localhost: 5000"); O parâmetro passado é WS: //+URL, que é o mesmo que o prefixo do protocolo HTTP http: //. Em seguida, você pode usar alguns métodos internos do WebSocket para monitorar eventos e exibir dados.
Aqui, apresentamos cada evento de escuta: o Onopen aciona quando o servidor e o cliente estabelecem uma conexão; OnMessage aciona quando o cliente recebe dados enviados pelo servidor; OCLOSE gatilhos quando o cliente e a conexão do servidor estão fechados; O Orror aciona quando o erro de conexão ocorre.
3. Use websocket + nodejs para implementar a sala de bate -papo online
(1) Código HTML e CSS omitido
(2) Cliente JS:
oconnect.OnClick = function () {ws = new websocket ('ws: // localhost: 5000'); ws.onOpen = function () {Oul.innerhtml+= "<li> cliente conectado </li>"; } ws.onmessage = function (evt) {Oul.innerhtml+= "<li>"+evt.data+"</li>"; } ws.onclose = function () {Oul.innerhtml+= "<li> Cliente desconectado </li>"; }; ws.onerror = function (evt) {Oul.innerhtml+= "<li>"+evt.data+"</li>"; }; }; Osend.OnClick = function () {if (ws) {ws.send (oinput.value); }} (3) Lado do servidor Js: /*O WebSocket suporta dois tipos de transmissão de dados: tipo de texto e tipo binário, onde dados binários são enviados e lidos pelo padrão do fluxo* /var app = requer ('http'). CreateServer (manipulador); // Para simplificar o código, coloque o código específico da criação do servidor na função manipuladora var ws = requer ('nodejs-webesocket'); var fs = requer ('fs'); App.Listen (8888); manipulador de funções (req, res) {// __ Dirname retorna o diretório atual em que o arquivo está localizado. Chame o método readfile para leitura de arquivos fs.readfile (__ Dirname+'/index.html', function (err, dados) {if (err) {res.WriteHead (500); return res.nd ('error');} res.WriteHead (200); resort (Data);});} ////} resp.writehead (200); resort (data);});} ////} resfriado (200); resort (Data); instância da conexão correspondente var server = ws.createServer (function (conn) {console.log ('new Connecton'); // Ouça o evento de texto e acione Conn.on ("text", function (str) {sempre que o texto é recebido transmissão (servidor, str);}; console.log ('conexão fechada');})}). Ouça (5000); // Observe que o ouvinte aqui é a porta do servidor que acabou de ser aberta. O cliente envia a mensagem aqui para processar a transmissão da função (servidor, msg) {//server.connections é uma matriz que contém todos os clientes conectados.connections.foreach (function (conn) {//connection.sendText Método pode enviar o conteúdo especificado para o cliente e passar em uma string // aqui é que cada cliente é para enviar o conteúdo para o conteúdo para o conteúdo.Espero que todo o conteúdo disso seja útil para o aprendizado de todos, e espero que todos apoiem mais o wulin.com.