Это мой код, я хочу опубликовать текстовый файл на сервере, а также подписать один и тот же файл клиентом, здесь я написал две программы, одна из которых является сервером, а другая - клиентом, но я не знаю, как опубликовать файлиспользование с 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)