我在Flash开发人员的帮助下在我的服务器中构建了一个应用程序,他让我构建一个套接字服务器来与数据库进行通信。他推荐我JAVA,但我不是很擅长JAVA,我想知道是否可以在PHP中构建一个Socket服务器。
我应该允许连接到多个TCP客户端连接。我知道在JAVA中这是思想线程,但我不确定这是否也可以通过PHP实现。
有人可以告诉我具有这些特性的PHP套接字服务器的基本框架吗?
从连接开始到应用程序,直到结束,连接必须是TCp(持久性)。
答案 0 :(得分:2)
您必须从命令行将套接字服务器作为服务运行。 这是我以前用过的一部分。它在读取后关闭套接字,但可以很容易地修改以保持连接数组。
代码:
set_time_limit( 0 );
// Set the ip and port we will listen on
$address = '127.0.0.1';
$port = 6789;
// Create a TCP Stream socket
$sock = socket_create( AF_INET, SOCK_STREAM, 0 ); // 0 for SQL_TCP
// Bind the socket to an address/port
socket_bind( $sock, 0, $port ) or die( 'Could not bind to address' ); //0 for localhost
// Start listening for connections
socket_listen( $sock );
//loop and listen
while (true) {
/* Accept incoming requests and handle them as child processes */
$client = socket_accept( $sock );
// Read the input from the client – 1024000 bytes
$input = socket_read( $client, 1024000 );
// from here you need to do your database stuff
// and handle the response
// Display output back to client
socket_write( $client, $response );
socket_close( $client );
}
// Close the master sockets
socket_close( $sock );
答案 1 :(得分:0)
Google代码中有一个WebSocket Server and Client library for PHP。它支持Flash客户端。不确定它是否能解决您的问题。
如果你想要一个基本的教程,那就是学习的链接
How to create a socket server in php
编辑: - 查看您的评论(作为服务连续运行套接字服务器)
以下链接描述了创建套接字服务器并作为进程运行的方法
答案 2 :(得分:0)
您应该构建一组Web API(SOAP,REST / JSON,无论如何),而不是构建“套接字服务器”,它提供对数据库的有限且定义良好的访问。然后让Flash应用程序使用它。
您的Flash应用程序通过RESTful接口或SOAP / XML请求发送JSON。服务器接收它们,与数据库进行适当的交互,并以XML或JSON的形式再次返回任何所需的结果。