python - Python 使用正确的套接字
问题描述
我正在使用 Google Cloud 和 Google App Engine,并且我希望我们的服务 API 之一使用socket
连接而不是常规 HTTP 连接,在该连接中接收请求并在每次查询时发送一次响应。
我需要这个套接字连接,以便在更新时将持续连接和当前数据流发送回用户。
我已经阅读了几份文档,Google App Engine docs for sockets 建议使用套接字库。但是在文档的底部,他们提供了一个使用带有套接字的 Google App Engine 的示例应用程序,但是示例应用程序中的套接字是由nntplib
而不是socket
. 有多少 python 库可以制作/使用套接字以及我应该使用哪个套接字进行这种连接。
它在 python 文档nntplib
中说用于实现新闻阅读器或海报,所以我不确定这是否是我应该使用的正确套接字连接类型,用于将在线用户的当前数据发送回前端用户。
https://docs.python.org/2/library/nntplib.html
我应该使用
socket.socket()
编辑: https ://cloud.google.com/appengine/docs/standard/python/sockets/#making_httplib_use_sockets
解决方案
我的初衷是不使用任何额外的服务或费用,例如@dhauptman 建议的许多很棒的服务或费用,但似乎根据 Google App Engine docs for sockets (Python 2.7): Python Sockets Google App Engine
似乎由于套接字仅支持出站套接字,我可以只创建一个带有订阅事件的套接字连接,并且每当事件发生和更新时,只需查询 API 以获取任务处理程序并将其作为响应发送回来。
另一种选择是使用 httplib 库而不是 Google App Engines urlfetch。使用 httplib 库时,可以在 app.yaml 文件中配置为使用套接字连接。这将克服达到 urlfetch 限制的问题。
推荐阅读
- javascript - 一个验证 Python 正则表达式的 Javascript 库?
- javascript - 如何将 JavaScript 中的数据缓冲区转换为文件?
- math - 从 Lua 中的表中选择 N 个均匀分布的元素
- svelte - 在 fetch Sapper 上区分服务器端和客户端
- xml - XSLT 将项目与类匹配
- c++ - 模式生成器
- aws-lambda - 如何使用 Amazon Lex 捕获用户的随机字符串输入
- android - 使用 url_launcher 进行颤振列表搜索
- django - Django 错误:“方法”对象不可下标
- typescript - 为什么 typescript generic T any 不起作用?