Как я могу иметь возможности мгновенного чата на своем сайте, используя PHP? - PullRequest
0 голосов
/ 06 июля 2011

Я хочу создать чат с помощью PHP.Будет ли использование MySQL хорошей идеей?Я понимаю, что вам понадобится больше, чем просто PHP для создания чата, но как мне это сделать?Как это можно легко сделать?С чего начать?

Ответы [ 3 ]

2 голосов
/ 06 июля 2011

«мгновенно» может потребоваться заглянуть в сокеты

Когда информация отправляется через Интернет, она обычно разбивается на пакеты.Это позволяет отправлять большие файлы с множеством мелких фрагментов информации для последующего сбора на другом конце.

Существует два разных протокола для разделения информации на пакеты, в зависимости от типа отправляемой информации и требований к доставке.TCP (протокол управления передачей) - передаваемые пакеты нумеруются и собираются на другом конце, они собираются для формирования всего сообщения.TCP обычно работает через IP (интернет-протокол), отсюда и термин TCP / IP.

TCP гарантирует, что никакие данные не будут потеряны (если пакет потерян, он будет передан повторно), и, следовательно, хорошо подходит для отправки изображений, файлов или другой информации, которая должна быть получена как единое целое (например, вашЭл. адрес).UDP (User Datagram Protocol) - это протокол без установления соединения.Как и TCP, он может работать по протоколу IP.Разница в том, что UDP предоставляет мало услуг по восстановлению после ошибок, и поэтому нет гарантии, что конкретный пакет будет получен на другой стороне или в каком порядке будут получены пакеты.

Пример:

<?php 
// Set time limit to indefinite execution 
set_time_limit (0); 

// Set the ip and port we will listen on 
$address = '192.168.0.100'; 
$port = 9000; 

// Create a TCP Stream socket 
$sock = socket_create(AF_INET, SOCK_STREAM, 0); 
// Bind the socket to an address/port 
socket_bind($sock, $address, $port) or die('Could not bind to address'); 
// Start listening for connections 
socket_listen($sock); 

/* Accept incoming requests and handle them as child processes */ 
$client = socket_accept($sock); 

// Read the input from the client &#8211; 1024 bytes 
$input = socket_read($client, 1024); 

// Strip all white spaces from input 
$output = ereg_replace("[ \t\n\r]","",$input).chr(0); 

// Display output back to client 
socket_write($client, $output); 

// Close the client (child) socket 
socket_close($client); 

// Close the master sockets 
socket_close($sock); 
?>

Подробнее о том, как кодировать сервер чата на основе сокетов, можно прочитать здесь: http://devzone.zend.com/article/1086

0 голосов
/ 16 июня 2013

Вы можете использовать сокеты, и @AlienWebguy сказал, однако не так много о том, как вы можете интегрировать чаты на основе сокетов с MySQL.

Я провел несколько тестов и у меня есть базовый пример: https://github.com/andrefigueira/PHP-MySQL-Sockets-Chat

Используется Ratchet (http://socketo.me/) для создания сервера чата в PHP.

И вы можете отправлять сообщения чата в БД, отправляя на сервер JSON информацию о том, кто в чате (если, конечно, у вас есть сеансы пользователя)

0 голосов
/ 06 июля 2011

Вы можете скачать APE, это действительно хорошо и круто :)
Или попробуйте создать свой собственный с PHP / MySQL, AJAX, но проблема с БД заключается в большом использовании: (

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...