【问题标题】:Python long polling server (same as existing PHP server)Python 长轮询服务器(与现有的 PHP 服务器相同)
【发布时间】:2017-05-16 00:09:32
【问题描述】:

我有一个用于长轮询服务器的简单 php 脚本(在 xampp 上运行),但我想将其转换为 Python 并使其成为 Python 服务器。我对 python 有点缺乏经验(特别是在 web 服务器方面),我还没有找到任何简单的 python web 服务器解决方案可以做同样的事情,所以我想知道,谁能帮我翻译这个脚本php 到 Python。

我的 php 脚本执行此操作:它从客户端获取时间戳,然后将其与文件的当前修改时间进行比较,如果它们不同,它会发送文件内容和以 JSON 编码的新时间戳。 这是我的代码:

<?php
$filename = dirname(__FILE__).'/data.txt';

$lastmodif = isset($_GET['timestamp']) ? $_GET['timestamp'] : 0;
$currentmodif = filemtime($filename);

while ($currentmodif <= $lastmodif){
    usleep(10000);
    clearstatcache();
    $currentmodif = filemtime($filename);
}

$response = array();
$response['msg'] = file_get_contents($filename);
$response['timestamp'] = $currentmodif;
echo json_encode($response);
?>

【问题讨论】:

  • 这是一个非常广泛的问题!有很多方法可以运行 python Web 服务器/Web 服务/应用程序服务器/...直到您决定如何使用 python 作为服务器,您不太可能得到答案...
  • 正如我在问题中所写,我需要它来做与我的 PHP 脚本相同的事情,即:当它通过 GET 获取时间戳时,它应该对某些文件的修改时间运行检查,如果该文件的修改时间与我们从 GET 获得的时间戳不同,则发送响应。因此,如果有人可以向我展示一个简单的 python 服务器示例,这也将非常有用。
  • @TomSilverhill - 我是否回答了您对“简单 python 服务器”的请求?
  • @Yaron - 我仍然没有足够的时间尝试一下,但我很快就会尝试。那我会告诉你的。谢谢。

标签: php python server


【解决方案1】:

以下链接包含一个简单的 python 服务器示例,以及一些附加信息,它应该为您提供 python tcp/ip 客户端/服务器编程的良好起点:

TCP/IP 客户端和服务器 - https://pymotw.com/2/socket/tcp.html

python wiki - TCP 通信 - https://wiki.python.org/moin/TcpCommunication

Python 文档 - 20.17.4.1。 SocketServer.TCPServer 示例 - https://docs.python.org/2/library/socketserver.html#SocketServer.TCPServer

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2013-05-25
    • 2012-06-10
    • 2012-07-03
    • 2012-04-15
    • 1970-01-01
    • 2019-02-10
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多