Oi Habr. O bate-papo no console é ótimo, mas para o front-end, e se você quiser o mesmo, mas para o back-end. Se sim, então este artigo é para você. Mas qual ferramenta é frequentemente usada no back-end? É isso mesmo ssh, então eu represento sshchat.
Como ficará
Em algum lugar do servidor, o programa no nó está girando.
Assim que alguém quiser se conectar ao bate-papo, ele entra:
ssh server -p 8022
Depois disso, o sistema solicita uma senha e a verifica com a senha em um arquivo especial. Se a senha corresponder, nos conectamos ao chat (o usuário recebe 100 mensagens anteriores e todos os outros vêem que ele está conectado).
Então ele recebe as mensagens de outras pessoas e pode escrever as suas.
Aqui com mensagens mais interessantes:
@box{@color(red){Red text in box}}
Envie texto em vermelho na caixa.
Vamos começar
Para trabalhar com o ssh, usaremos https://www.npmjs.com/package/ssh2 .
Para formatação, usamos giz e boxen.
Então instale-os:
npm i ssh2 chalk boxen
Agora, o próprio código é uma das partes mais importantes deste analisador de mensagens ( GitHub ):
Formatação ( GitHub ):
const chalk = require('chalk'); const { parseAndExecute } = require('./parserExec')
Métodos para enviar uma mensagem a todos os usuários e salvar 100 mensagens ( GitHub ):
let listeners = [];
Lobby, criação e autorização do servidor ( GitHub ):
const { Server } = require('ssh2'); const { readFileSync } = require('fs'); const hostKey = readFileSync('./ssh');
Vários métodos ( GitHub ):
const { createInterface } = require('readline'); module.exports.getStream = function(client, onStream, onEnd){ client
Agora combine ( GitHub ):
const { createServer, setConnectCallback } = require('./lobby'); const { getStream, getCommunicator } = require('./utils'); const { addListener, delListener, broadcast, getCache } = require('./broadcaster'); const { format, getNick } = require('./format');
E a etapa final é um servidor de exemplo:
const chat = require('.') chat({})
O arquivo users.json também descreve usuários e suas senhas.
Conclusões
É assim que você pode escrever o bate-papo mais fácil do ssh.
Para esse bate-papo, o cliente não precisa escrever, possui os recursos de design e qualquer pessoa pode implantá-lo.
O que mais pode ser feito:
- Adicione a capacidade de criar seus próprios recursos de design
- Adicionar suporte de remarcação
- Adicionar suporte a bot
- Aumentar a segurança da senha (hash e salt)
Repositório final