使用Python的SimpleHTTPServer

时间:2017-07-26 20:36:07

标签: python asynchronous httprequest simplehttpserver

我正在制作匿名聊天应用程序,类似于“聊天”。我的方法而不是使用套接字是使用REST API,但添加一点扭曲。当用户发出请求(例如POST /搜索(找到匹配项))时,服务器会保留该请求,直到另一个用户发送POST /搜索。一旦两个人完成了这个操作,就会响应这两个请求,让客户知道切换到聊天页面。这也是通过待处理的GET /事件请求完成的,只有在发送任何新事件时才会由服务器响应。

这在理论上与这个应用程序的流程非常有效;但是,由于我使用的是SimpleHTTPServer--这是一个非常基本的库 - 请求不是异步处理的。这意味着如果我阻止一个请求直到满足信息要求,则不能接受任何其他请求。对于这种项目,我真的不想花时间学习一个全新的库/子语言来进行异步请求处理,所以我想弄清楚如何做到这一点。

def waitForMatch(client):
    # if no other clients available to match:
    if not pendingQueue:
        # client added to pending queue
        pendingQueue.append(client)
        client["pending"] = True

        while client["pending"]:
            time.sleep(1)

        # break out and let the other client's waitForMatch call create the chatsession
        return

    # now there's a client available to match
    otherClient = pendingQueue.pop()
    otherClient["pending"] = False

    # chat session created
    createChatSession(otherClient, client)

这是我目前拥有的代码,不适用于非异步请求。

0 个答案:

没有答案