我有一个GPS单元,可以通过TCP连接发送数据,但我没有能力修改它发送的消息,所以它会以HTTP请求的形式来到我的服务器 - 它只能发送一条消息以预定义的格式.
所以,我有以下问题:
1)Apache是否可以处理不是以HTTP请求形式出现的TCP连接,并且发送的消息是否由PHP脚本处理?
2)如果#1不可能,你会如何建议我处理发送到我服务器的数据?
我可能会有数百个(如果不是数千个)这些GPS单元向我的服务器发送数据,因此我需要一种有效的方法来处理所有连接(这就是为什么我希望Apache或其他一些有价值的服务器来处理TCP连接).我希望能够处理通过PHP连接发送的消息,因为这是我的应用程序的其余部分运行,我将需要插入发送到数据库的数据(并且PHP非常擅长这样做之类的事情).
如果它很重要,GPS单元可以通过UDP连接发送数据,但是从我读到的内容中,Apache不能与UDP连接一起工作.
欢迎大家提出意见.
使用阿帕奇是不切实际的,因为它使用的是核弹,而鞭炮就足够了。在 xinetd 的帮助下,在 Linux 上创建 PHP 服务器非常简单。
调整/etc/services。假设您希望服务在端口 56789 上运行。在 中/etc/services,添加以下行:
gpsservice 56789/tcp
Run Code Online (Sandbox Code Playgroud)
在 中/etc/xinet.d/,创建一个名为gpsservice:
service gpsservice
{
socket_type = stream
protocol = tcp
wait = no
user = yourusername
server = /path/to/your/script
log_on_success = HOST PID
disable = no
}
Run Code Online (Sandbox Code Playgroud)
创建 PHP 脚本(chmod 使其可执行):
#!/usr/bin/php
<?php
// do stuff
?>
Run Code Online (Sandbox Code Playgroud)
重新启动 xinetdservice xinetd restart
现在您已经有了一个用 PHP 编写的快速 TCP 服务器。
| 归档时间: |
|
| 查看次数: |
3426 次 |
| 最近记录: |