我正在寻找使用PHP创建聊天。使用MySQL是个好主意吗?我意识到你需要的不仅仅是PHP来建立聊天,但我该怎么做?如何轻松完成?我从哪里开始?
答案 0 :(得分:2)
通过“即时”,您可能需要查看sockets
当通过Internet发送信息时,通常会将其拆分为数据包。这允许在许多较小的信息中发送大文件以便稍后在另一端组装。
根据发送的信息类型和交付要求,有两种不同的协议可以将信息分成数据包。 TCP(传输控制协议) - 传输的数据包被编号并在另一端组装,它们被组合以形成整个消息。 TCP通常在IP(因特网协议)上运行,因此称为TCP / IP。
TCP可确保不会丢失数据(如果数据包丢失则会重新传输),因此非常适合发送必须全部和整体接收的图像,文件或其他信息(如电子邮件)。 UDP(用户数据报协议) - 这是一种无连接协议。与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 – 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
答案 1 :(得分:0)
你可以下载APE,这真的很酷很酷:) 或者尝试使用PHP / MySQL,AJAX构建自己的,但DB的问题是高使用率:(
答案 2 :(得分:0)
您可以使用套接字和@AlienWebguy说,但是关于如何将基于套接字的聊天与MySQL集成的问题并不多。
我做了一些测试,并在这里有一个基本的例子:https://github.com/andrefigueira/PHP-MySQL-Sockets-Chat
它利用Ratchet(http://socketo.me/)在PHP中创建聊天服务器。
您可以通过向服务器JSON发送聊天对象的信息(当然您有用户会话)来向数据库发送聊天消息