0

OpenShift アカウントで実行できる、Python で記述された最小限のソケット サーバーを作成したいと考えています。私は1日以上検索し、これに使用できる多くのライブラリ(tornado、django、twisted、flask、autobahn、gevent)を見つけましたが、それを実装することができませんでした. (実際には、これらの違いはよくわかりません。) 同様に多くのチュートリアルを探したところ、Tornado を使用した実装が見つかりました。

import tornado.ioloop
import tornado.web
import tornado.websocket
import tornado.template

class MainHandler(tornado.web.RequestHandler):
  def get(self):
    loader = tornado.template.Loader(".")
    self.write('hello world')

class WSHandler(tornado.websocket.WebSocketHandler):
  def open(self):
    print 'connection opened...'
    self.write_message("The server says: 'Hello'. Connection was accepted.")

  def on_message(self, message):
    self.write_message("The server says: " + message + " back at you")
    print 'received:', message

  def on_close(self):
    print 'connection closed...'

application = tornado.web.Application([
  (r'/ws', WSHandler),
  (r'/', MainHandler),
  (r"/(.*)", tornado.web.StaticFileHandler, {"path": "./resources"}),
])

if __name__ == "__main__":
  application.listen(8000)
  tornado.ioloop.IOLoop.instance().start()

ただし、単純なhtml5 websocketクライアントから接続できません。さらに503 Service Temporarily Unavailable、ドメインに入ると取得します。

OpenShift にアップロードするか、信頼できる 100% 信頼できるチュートリアルにリンクすると機能する最小限の実装 (可能であればトルネードまたはおそらく django を使用) を教えてください。私はこれについて頭を悩ませることができないことを本当に嬉しく思います。

4

2 に答える 2

2

そのようにopenshiftでポートアドレスを使用することはできません。これを行うことをお勧めします:

   ip   = os.environ['OPENSHIFT_PYTHON_IP']
   port = int(os.environ['OPENSHIFT_PYTHON_PORT'])
   application.listen(port , ip)
   tornado.ioloop.IOLoop.instance().start()

たとえば、このリポジトリを確認してください: https://github.com/avinassh/openshift-tornado-starter

于 2014-06-27T06:54:17.983 に答える