As salas de bate -papo online são uma plataforma on -line para comunicação com várias pessoas. Com a invenção e maturidade de mais e mais novas tecnologias, as salas de bate -papo on -line também usaram várias tecnologias. Eu gostaria de resumir brevemente este artigo.
Primeiro de tudo, vamos falar sobre a tecnologia front-end. O mais recente é, obviamente, o WebSocket baseado em HTML5, que implementa a comunicação complexa entre o navegador e o servidor. O protocolo de comunicação do WebSocket foi designado como o RFC 6455 padrão pelo IETF em 2011, e a API do WebSocket foi designada como padrão pelo W3C. Na API do WebSocket, o navegador e o servidor precisam apenas apertar as mãos e, em seguida, um canal rápido é formado entre o navegador e o servidor. Os dados podem ser transmitidos diretamente entre os dois. No entanto, como o WebSocket é uma API HTML5, muitos navegadores ainda não têm suporte, então esse método não é particularmente usado agora. O segundo tipo é Ajax. Adota um método de votação. De vez em quando, você baixa dados no servidor para verificar se ele é atualizado. Sua vantagem é o processamento de solicitação assíncrona (a sincronização também pode ser configurada) e não bloqueará outras operações do usuário. A desvantagem é que a pesquisa ininterrupta não apenas consome largura de banda, mas também ocupa muitos recursos de terminal e servidor. Além disso, como há um intervalo de tempo para a pesquisa de Ajax, as mensagens obtidas não são em tempo real, porque não é um gatilho de mensagem e a eficiência do Ajax é quase a mais baixa. O terceiro tipo é a tecnologia Push (COMET) baseada em servidor. É chamado de push, mas na verdade é pseudo -push. O princípio é estabelecer uma longa conexão entre o terminal e o servidor. A recepção obtém o conteúdo, determinando se o conteúdo dessa conexão longa mudou. Sua vantagem é que ele ocupa menos recursos e tem um bom desempenho em tempo real. Requer suporte especial do servidor e ocupa a conexão por um longo tempo. Agora, mais e mais serviços adotam essa tecnologia.
Vamos falar sobre o fundo. As salas de bate -papo são aplicações altas de IO, e o banco de dados pode ser o maior gargalo. A característica do bate -papo é que existem muitos textos curtos, semelhantes ao Weibo. Além disso, pertence a um sistema multiusuário. Quando o usuário atingir uma ordem de magnitude, se um banco de dados relacional como o MySQL for usado, a pressão da consulta deve ser muito alta. Se não houver requisitos especiais, acredito pessoalmente que os registros de bate -papo não precisam ser armazenados permanentemente. No momento, sistemas de armazenamento baseados em memória, como Memcache e Redis, podem desempenhar um papel. Abaixo está uma sala de bate -papo on -line simples, baseada no AJAX+PHP+Memcache que desenvolvi.
Nesta sala de bate -papo, todos os registros de bate -papo são armazenados no Memcache. O ID máximo dos registros de bate -papo é armazenado com o CID e os registros de bate -papo são armazenados com o MSGCID. Para cada registro inserido, o CID será aumentado em 1. A recepção obtém dados de formato JSON através do AJAX. Como o Memcache é baseado na memória, o sistema geral funciona muito rápido. Abaixo está o código -fonte do sistema. Existem apenas dois arquivos em todo o sistema, que são menos de 10kb juntos.
Download wulin.com
https://github.com/hitoy/online-chatroom
Requisitos do sistema:
1. Memcache está instalado
2. Instale a extensão do memcache no PHP
3. navegadores modernos que suportam JavaScript e Ajax