Twistedを使用してカスタムプロトコルでサーバーを作成し、特定のポート(ポート1234など)でサーバーに接続するクライアントがあります。ある種のWebページに基づいてサーバーの制御インターフェースを作成しようとしています。これまでの私の調査では、Nevowが人気のある選択肢であることが示されていますが、必要なのは非常に単純なものだけです。
たとえば、ブラウザがポート8080でhello worldページにアクセスするたびに、1234で接続されているクライアントにメッセージを送信するとします。
これら2つをどのように接続できるかについて少し混乱しています。HelloResource.render_GETからServer.messageを呼び出す必要があると思いますか?
from twisted.internet import protocol, reactor
from twisted.web.resource import Resource
class Server(protocol.Protocol):
def dataReceived(self, data):
#do something on the server side
def message(self)
#send message to clients
class HelloResource(Resource):
isLeaf = True
def render_GET(self,request):
return "<html>Hello, world!</html>"
factory = protocol.Factory()
factory.protocol = Server
reactor.listenTCP(1234, factory)
reactor.listenTCP(8080, server.Site(HelloResource()))
reactor.run()