Página de Edward Martin

Início Atualizações Dados pessoais Programas Textos Links


Chat acessível

Nota: Essa página destina-se a desenvolvedores

Quando não se pode ler com os olhos as mensagens de um chat, provavelmente a forma mais simples é usar um programa chamado Papovox. O Papovox faz parte do Projeto Dosvox (vide links). Na ausência dele, o Telnet (seguir o protocolo do Telnet) é uma boa opção.

Infelizmente o Papovox segue um protocolo próprio, um pouco diferente do HTTP, por isso a implementação pode ser um pouco trabalhosa. Ele é está mais próximo do Telnet que do HTTP.

O chat da rede SACI consegue ser bastante acessível, pois possui suporte ao Papovox e mesmo a Telnet. Para quem enxerga, costuma ser mais conveniente entrar via navegador, por isso ele também possui suporte a navegador.

Além do bate-papo da rede SACI existem outros programas que entendem o protocolo do Papovox.

Um deles é o ServMud
Código fonte .tar.gz ou Código fonte .zip
Esse é o código fonte, em C++.

Também é possível dar uma olhada no Sitiovox ou no próprio Papovox, que vem com o projeto Dosvox. O código fonte (em Pascal) costuma vir junto.
Projeto Dosvox


Protocolo de comunicação

Caracteres

Neste texto os caracteres são escritos como na linguagem C. Exemplo: caracter 'A' tem código ASCII 65, que é 0x41 (em hexadecimal).

Caracteres especiais

CR, caracter 0x0D, significa "Carriage Return", ou Retorno do carro, faz o cursor voltar para o início do texto LF, caracter 0x0A, significa "Line Feed", e faz o cursor ir para a próxima linha.

Portanto, CRLF são os caracteres 0x0D e 0x0A. Porém, se for enviado só CR ou só LF, ao invés de CRLF, o servidor também entende a mensagem.

Obs.: Nos arquivos .TXT criados via DOS/Windows as linhas terminam com CRLF, e nos textos criados via UNIX, as linhas terminam com LF.

Protocolo Papovox

  1. É feita uma conexão com o servidor, na porta 1963.
  2. O servidor manda uma mensagem que começa com o caracter '+' (se OK) ou '-' (se erro) e termina com CRLF. Se a mensagem começar com '-', a conexão será encerrada.
  3. O cliente manda uma mensagem qualquer (não nula) terminada com CRLF
  4. O servidor manda uma mensagem que começa com o caracter '+' (se OK) ou '-' (se erro) e termina com CRLF.

A partir daqui todas as mensagens transmitidas e recebidas têm o seguinte formato:

Obs.: O tamanho da mensagem é o byte mais significativo vezes 256 (ou 0x100) somando ao byte menos significativo.

Exemplo:
  1. Cliente conecta
  2. Servidor manda mensagem contendo os caracteres:
  3. Cliente responde:
  4. Servidor responde:
  5. Servidor espera um tempo e manda mensagens, exemplo:
  6. Cliente:

Usando Telnet com o servidor

  1. É feita uma conexão com a porta do servidor
  2. O servidor manda uma mensagem que começa com o caracter '+' e
  3. termina com CRLF
  4. O cliente manda os caracteres CRLF
  5. O servidor manda uma mensagem que começa com o caracter '-' e termina com CRLF

A partir daqui todas as mensagens transmitidas terminam com CRLF, e todas as mensagens recebidas pelo servidor devem terminar com um dos 3:

Exemplo:
  1. Cliente conecta
  2. Servidor manda mensagem contendo os caracteres:
  3. Cliente responde:
  4. Servidor responde:
  5. Servidor espera um tempo e manda mensagens, exemplo:
  6. Cliente:

Comandos mais comuns do chat da rede SACI

Todos os comandos começam com uma /. As opções de ajuda começam com uma ?. Quando o usuário digita algo que não começa com /, nem com ?, o chat envia a mensagem para todos que estiverem na mesma sala.

Para mudar de sala escreve-se / seguido do nome da sala. Exemplo:

/teste

Para escrever reservadamente escreve-se / seguido do apelido e a mensagem. Exemplo:

/fulano bom dia

Para saber quem está na sala escreve-se:

?quem

E para saber quantos usuários estão nas salas abertas, escreve-se:

?quantos
Voltar Voltar para textos
Contato:
enviar um e-mail
e2mar arroba ajato.com.br
ed2martin arroba yahoo.com.br