问:如何集成Pyramid 1.5和Socket.IO 1.3?

时间:2015-02-05 19:36:04

标签: socket.io pyramid gunicorn

我在服务器端使用Pyramid Framework 1.5和Gevent-socketio以及在客户端使用Socket.IO V1.3时遇到问题。 我遇到的问题是,当我在客户端打开套接字时,服务器会抛出内部服务器错误(500)。 此外,终端输出以下行:

    socket = environ['socketio']
KeyError: 'socketio'

我已经搜索过这个问题而且我读到它与我正在使用的WSGI服务器有关(目前正在使用Gunicorn。也许我正在使用它或设置它的方式是错误的)但我不能找不到任何好的资源来解决这个问题。

我几乎没有问题:

  1. 首先,Pyramid和新的Socket.IO V1.3之间是否有任何良好的集成(gevent-socketio项目在过去1年内没有更新,从那时起Socket.IO V1发布了重大变化)。 / LI>
  2. 我读到我必须用Gevent或其他东西设置Gunicorn,但我不能这样做。关于这个的任何好的资源或解释?
  3. 最后但并非最不重要的,偏离主题,在制作时,人们如何运行他们的应用程序?在服务器中使用终端?听起来有些奇怪。有人可以解释我应该如何在生产中使用Gunicorn和Pyramid以正确的方式运行应用程序(而不是)?我应该运行什么文件以及如何运行?应该包含什么?
  4. 谢谢!

    更新:
    也许我不够清楚但是当我使用旧版本时(例如,Socket.IO V0.9.6),问题不会发生。但是当我将JavaScript文件从Socket.io版本0.9.6更改为Socket.IO版本1(及更高版本)时,问题就出现了。

1 个答案:

答案 0 :(得分:0)

1)Pyramid和Socket.IO的集成已经为您完成: https://github.com/abourget/gevent-socketio

2)您可以看到Gunicorn的文档,了解有关设置的信息,包括放入Pyramid的development.ini / production.ini文件(Paster)中的内容: http://docs.gunicorn.org/en/develop/configure.html#paster-applications 补充阅读:https://www.digitalocean.com/community/tutorials/how-to-deploy-python-wsgi-apps-using-gunicorn-http-server-behind-nginx#serving-python-web-applications-with-gunicorn

3)以下是有关部署Web应用程序以进行生产的信息(Nginx是Apache的一种非常流行的替代方案): http://pyramid-cookbook.readthedocs.org/en/latest/deployment/nginx.html