Как я могу опубликовать и подписать файл с помощью WAMP автобана Python - PullRequest
0 голосов
/ 14 ноября 2018

Это мой код, я хочу опубликовать текстовый файл на сервере, а также подписать один и тот же файл клиентом, здесь я написал две программы, одна из которых является сервером, а другая - клиентом, но я не знаю, как опубликовать файлиспользование с wamp autobahn python, поэтому любой может подсказать мне, как публиковать и подписывать файл.

Серверная программа:

from __future__ import print_function
import requests
from os import environ
import os
import argparse
from twisted.internet import reactor
from twisted.internet.defer import inlineCallbacks
from autobahn.twisted.wamp import ApplicationSession, ApplicationRunner
requests.post("http://wamp.sice.in:8080/notify",
        json={
          'topic': 'service.self.admin',
           'args': [{'type' : 'scrap' }]

        }
    )
class ClientSession(ApplicationSession):
    @inlineCallbacks
    def onJoin(self, details):
        print("session attached")
        self.received = 0
        sub = yield self.subscribe(self.on_event, u'service.self.result')
        print("Service.self.result {}".format(sub.id))

    def on_event(self, i):
        print("Got event: {}".format(i))

    def onDisconnect(self):
        print("disconnected")
        if reactor.running:
            reactor.stop()
if __name__ == '__main__':
    import six

    runner = ApplicationRunner(url= u'ws://wamp.sice.in:8080/ws', realm= u'default')
    runner.run(ClientSession, auto_reconnect=True)

Клиентская программа:

from __future__ import print_function
from os import environ
import os
import argparse
from twisted.internet import reactor
from twisted.internet.defer import inlineCallbacks
from autobahn.twisted.wamp import ApplicationSession, ApplicationRunner
import requests
class ClientSession(ApplicationSession):
    @inlineCallbacks
    def onJoin(self, details):
        print("session attached")
        self.received = 0
        sub = yield self.subscribe(self.on_event, u'service.self.admin')
        print("Service.self.adminh {}".format(sub.id))
    def on_event(self, i):
        print("Got event: {}".format(i))
        requests.post("http://wamp.sice.in:8080/notify",
                json={
                  'topic': 'service.self.result',


                  'args':[{'site1':'data'}]                   
            )
    def onDisconnect(self):
        print("disconnected")
        if reactor.running:
            reactor.stop()
if __name__ == '__main__':
    import six

    runner = ApplicationRunner(url= u'ws://wamp.sice.in:8080/ws', realm= u'default')
    runner.run(ClientSession, auto_reconnect=True)
...