Mensajes de Salida

¿Qué son los mensajes de salida?

Los Mensajes de Salida son usados en el protocolo del IRC para describir que un usuario quiere salir con un mensaje personalizado, o el error que causó la desconexión. Los Mensajes de Salida Personalizados pueden ser creados por el usuario para mostrar o decir a donde van. Estos no pueden exceder de 200 caracteres (incluyendo Control Codes) y están limitados a solo una línea. Los Mensajes de Salida de Error son usados para describir que ha pasado con la desconexión desde el servidor.

¿Dónde son mostrados?

La visualización de los mensajes de salida es muy directa. Cuando el usuario se desconecta, un mensaje es mostrado en la ventana del canal. En el mIRC a veces puede aparecer en la ventana de Status, en ambas, o no mostrarse, debido a la configuración. Estos mensajes no son mostrados en la ventana de mensajes/chat cuando el usuario sale, entonces si tu estás hablando con alguien y ya no recibes una respuesta, haz un /whois para verificar. En el canal, el mensaje usual es: “Nick has quit IRC (mensaje).” En la area de mensaje, se pone una descripción. Este puede ser tanto un mensaje personalizado, como un mensaje de error.

¿Cómo obtener información de los mensajes de salida?

Para obtener información de por que un usuario salió (ejemplo, una salida personalizada), existen también los mensajes de error, que nos dan información sobre la razon de la desconexión. Por ejemplo, los mensajes de error pueden ser “Read error,” “Write error,” “Ping timeout,” etc. Cada uno de estos describe que fue lo que ocurrió.

Personalizando los mensajes de salida

Muchos usuarios personalizan su mensaje de salida para mostrar por que se fueron. Para hacer esto, simplemente escribe “/quit (razón)”. Cuando este comando es escrito, es mostrado lo siguiente: “*** Nick has quit IRC (razón).” Por ejemplo, si mi nick es John, y escribí “/quit Voy de paseo” se va a mostrar: “*** John has quit IRC (Voy de paseo)”. Los mensajes de salida no pueden exceder de 200 caracteres de longitud.

Mensajes de Read/Write Error
Definición de Read error

Un Read Error es un error de lectura y ocurre cuando el servidor no lee exitosamente del cliente del usuario. Los servidores obtienen información del cliente por texto, configuración y otros elementos. Cuando el servidor recibe un error cuando está leyendo la información del cliente, entonces desconecta al usuario, dando resultado un mensaje de salida de error de lectura. Por ejemplo: *** John has quit IRC (Read error to John[undernet.org]: EOF from client). Este error es causado porque el servidor esperaba más información de un archivo y el archivo responde con un error de EOF (End Of File – Final del Archivo).

Definición de Write error

Un write error es un error de escritura (no significa que si escribes mal serás desconectado) ocurre cuando el servidor no puede escribir exitosamente en el cliente del usuario. Cuando el servidor recibe información, usualmente responde con su propia información, Cuando el servidor recibe un error cuando esta escribiendo a un cliente, entonces desconecta al usuario, dando resultado un mensaje de salida de error de escritura, similar al formato de error de lectura. Por ejemplo: *** John has quit IRC (Write error to John[undernet.org], closing link). Este error es causado porque el servidor cerró la conexión cuando estaba tratando de mandar datos al cliente.

Connection reset by peer

Muchas veces cuando un usuario es desconectado por un error, el “connection reset by peer” es incluido. Esto significa que el servidor a re-iniciado la conexión. Esto desconecta cualquier “fantasma” que pueda estar presente y permite que el usuario pueda conectarse al servidor una vez más.

Ping Timeout

Los servidores mandan automáticamente pings a los usuarios cada cierto tiempo. La razón de esto es para asegurar que el cliente sigue conectado al servidor. Cuando ves “PING? PONG!” en tu ventana de Status, significa que el servidor ha mandado un ping a tu cliente y éste ha respondido con un pong para decirle al servidor de que sigues conectado a el. Cuando esto no pasa, y tu eres desconectado del servidor sin su conocimiento (por lo general por lag), el servidor automáticamente desconecta al usuario cuando no recibe una respuesta, dando resultado al Ping Timeout. Por ejemplo, si el servidor le manda un ping a nuestro amigo John, y el cliente de John no responde, terminará en: *** John has quit IRC (Ping timeout for John[undernet.org])

Previniendo Ping Timeouts

No existe alguna manera de prevenirse de los Ping Timeouts. Estos son causados por lo general por conexión del usuario saturada, saturación del servidor, un mal ISP (Proveedor de Internet), etc. También ocurren usualmente ocurren cuando el cliente no ha hecho alguna operación por una cantidad considerable de tiempo (por ejemplo, permaneciendo en el IRC sin hacer nada). Los Pings Timeout le pueden ocurrir a cualquiera.

Definición de Ping

El ping es una herramienta que tanto el usuario y los servidores usan para determinar la cantidad de tiempo de retrazo de comunicación entre el que lo manda y el que lo recibe. Cuando un usuario le da un ping a otro usuario, este es enviado al servidor en el que se encuentra el que lo manda, este a su vez lo manda al servidor en el que se encuentra el usuario destino y finalmente al cliente del usuario. Al final del proceso la información es mandada de vuelta al usuario origen de la misma forma, Es entonces cuando el tiempo de retrazo es mostrado, Esta misma acción es ejecutada cuando una línea de texto es mandada. Ayuda mucho averiguar cuanto tiempo tarda la información que mandas a la persona con la que estas chateando.

Otros mensajes de salida

También existen otros mensajes de salida que pueden mostrar, por ejemplo, un Netsplit. Esto es descrito en la sección 4.2 de esta Ayuda. Los Bots y Scripts también usan mensajes de salida determinados para mostrar a los usuarios por qué fueron desconectados. Estos son codificados por el programador o el scripter para que este sepa porqué fueron desconectados. Por ejemplo, Los Bots Oficiales del Servicio a Canales de Undernet a veces se desconectan con: *** X has quit IRC (Received SIGSEGV :( ). Esto es resultado en un error de memoria que X ha encontrado.

También puedes tener problemas de colisión de nicks, cuando la red se junta despues de un netsplit. Esto usualmente pasa cuando hay dos usuarios con el mismo nick (cada uno en diferentes servidores en split). Al juntarse de nuevo la red sucede eso. Ya que ambos no pueden continuar con el mismo nick, el usuario mas viejo (el que más tiempo tenga conectado en una sesión) mantendrá el nick, y el más nuevo será “matado” y deberá re-conectarse con el servidor con un diferente nick.

El mismo caso ocurre también si el mismo usuario esta en ambos lados del netsplit con el mismo user@host, cuando la red se junta.

Reconociendo un Netsplit

Los mensajes de salida también aparecen cuando hay un netsplit. Esto se muestra por los dos servidores se separan. Por ejemplo, si John fue desconectado porque irc.server.one e irc.server.two se separaron, esto resultará como: *** John has quit IRC (irc.server.one irc.server.two).

Salidas resultadas por un IRCop

Cuando un IRCop (Operador de la Red) desconecta a un usuario, es mostrado en el mensaje de salida del usuario. Por ejemplo, si a John le dieron G-Line en Undernet, esto mostrará: *** John has quit IRC (G-lined). Lo mismo ocurre cuando un K-Line es puesto. Cuando un IRCop hace un /kill a un usuario de un servidor, también es mostrado. Por ejemplo, si John fue “asesinado” (/kill) por Bob porque John tenia “clones” será mostrado: *** John has quit IRC (Killed (Bob (clones))).

Fuente: #IRCayuda