Meinem Dai-Sensei, der mir täglich zu Dank verpflichtet ist Es gibt eine "WebSocketMiddleware", die es einfach macht, WebSocket für vorhandene wsgi-Apps zu implementieren. Wenn es sich um einen Code handelt, der von einem Hetareyaro wie mir geschrieben wurde, ist er sehr langsam und unbrauchbar, es sei denn, er wird von meinheld erledigt, sodass ich nicht aufstehen kann.
Als ich darüber nachdachte, eine neue, cool aussehende App zu erstellen, die WebSocket so verwendet, Natürlich wird Mongodb als DB-Option mit einer solchen Dynamik ausgewählt. yep.
Also, was mongodb tun wird, wenn er sich auf Beispiel, das meinheld WebSocketMiddleware auf Flaschen usw. anwendet bezieht, das vom Autor von meinheld selbst geschrieben wurde. Ich frage mich, ob es so sein wird, wenn ich versuche zu bauen
main.py
from shimehari import Shimehari
from mongoengine import connect
from meinheld import server, middleware
import config
def connectDB():
connect(config['DB_NAME'])
app = Shimehari(__name__)
if __name__ == '__main__':
connectDB()
server.listen(("0.0.0.0", 3000))
server.run(middleware.WebSocketMiddleware(app))
$ (venv) bin/python main.py
People People People People People People
Plötzlicher Fehler <  ̄Y^Y^Y^Y^Y^Y^Y ̄
Traceback (most recent call last):
File "main.py", line 25, in <module>
connectDB()
File "/project/path/main.py", line 13, in connectDB
connect(config['DB_NAME'])
File "/project/path/lib/python2.7/site-packages/mongoengine/connection.py", line 162, in connect
return get_connection(alias)
File "/project/path/lib/python2.7/site-packages/mongoengine/connection.py", line 126, in get_connection
raise ConnectionError("Cannot connect to database %s :\n%s" % (alias, e))
mongoengine.connection.ConnectionError: Cannot connect to database default :
call from same greenlet
Ich weiß nicht, wovon du sprichst. Ich fragte mich, ob der Wirt um den Hafen seltsam war Plötzlich habe ich die Implementierung wie folgt geändert und es hat funktioniert.
main.py
#!/usr/bin/env python
# -*- coding: utf-8 -*-
from shimehari import Shimehari
def connectDB():
connect(config['DB_NAME'])
app = Shimehari(__name__)
if __name__ == '__main__':
connectDB()
#Import nach Verbindung mit db
from meinheld import server, middleware
server.listen(("0.0.0.0", 3000))
server.run(middleware.WebSocketMiddleware(app))
Es ist eine natürliche Sache für die Mohikan-Leute, die damit herumspielen! Es kann so etwas sein
Ich bin überhaupt nicht rausgekommen, als ich gegoogelt habe
Ich denke, dass es mehr Leute gibt, die node.js verwenden, wenn sie WebSocket ausführen, also denke ich, dass dies der Fall ist.
Vorerst hat es damit geklappt, also bin ich froh
Ist es besser, connecetDB
durch so etwas wie with
zu ersetzen?
Recommended Posts