首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何使用PHP在我的网站上拥有即时聊天功能?

如何使用PHP在我的网站上拥有即时聊天功能?
EN

Stack Overflow用户
提问于 2011-07-06 11:52:58
回答 3查看 212关注 0票数 0

我希望创建一个使用PHP聊天。使用MySQL是个好主意吗?我知道构建聊天需要的不仅仅是PHP,但是我该怎么做呢?如何才能轻松做到这一点呢?我该从哪里开始呢?

EN

回答 3

Stack Overflow用户

回答已采纳

发布于 2011-07-06 11:59:28

通过"instant“,您可能需要查看sockets

在Internet上发送信息时,通常会将其拆分成数据包。这允许以许多较小的信息片段发送大文件,以便稍后在另一端组装。

根据发送的信息类型和传输要求,有两种不同的协议可将信息拆分成数据包。TCP (传输控制协议)-传输的数据包被编号并在另一端组装,它们被组装以形成整个消息。TCP通常在IP (网际协议)上运行,因此称为TCP/IP。

TCP确保数据不会丢失(如果数据包丢失,将重新传输),因此非常适合发送图像、文件或其他必须完整接收的信息(如您的电子邮件)。UDP (用户数据报协议)-这是一种无连接协议。像TCP一样,它可以在IP协议上运行。不同之处在于,UDP提供的差错恢复服务很少,因此不能保证特定的分组将在另一端被接收,或者分组将以何种顺序被接收。

示例:

代码语言:javascript
复制
<?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

票数 2
EN

Stack Overflow用户

发布于 2011-07-06 12:00:36

你可以下载APE,它真的很好很酷:)

或者尝试使用PHP/MySQL、AJAX构建自己的数据库,但DB的问题是使用率高:(

票数 0
EN

Stack Overflow用户

发布于 2013-06-16 06:43:08

你可以使用套接字,@AlienWebguy说,但是关于如何将基于套接字的聊天与MySQL集成的内容并不多。

我已经做了一些测试,并且这里有一个基本的例子:https://github.com/andrefigueira/PHP-MySQL-Sockets-Chat

它使用Ratchet (http://socketo.me/)在PHP语言中创建聊天服务器。

您可以通过向服务器JSON发送聊天消息到数据库(当然,如果您有用户会话的话)。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/6591373

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档