Hy! На самом деле я подключаюсь к своему экземпляру google cloud vm, используя язык python, используя следующие модули autobahn, twisted. Мой экземпляр google cloud vm отлично работает, чтобы получать и отправлять изображения обратно в файл клиента Python.
Но, поскольку мы разрабатываем наше приложение для Android / IOS на флаттере, мне нужно вызывать мой код python из dart, чтобы я мог вызывать свою функцию python из приложения флаттера. Но я не могу найти способ как это сделать.
Вот мой код клиента, который будет подключаться к серверу, развернутому в экземпляре vm.
from autobahn.twisted.websocket import WebSocketClientProtocol, \
WebSocketClientFactory
import main
import jsonpickle
import base64
import matplotlib.pyplot as plt
import time
class MyClientProtocol(WebSocketClientProtocol):
def onConnect(self, response):
print("Server connected: {0}".format(response.peer))
def onOpen(self):
print("WebSocket connection open.")
def hello():
# opening the image file and encoding in base64
path = "/home/abdullah/Desktop/Clocktower_Panorama_20080622_20mb.jpg"
image = main.load_image(path)
encoded = jsonpickle.encode(image)
# printing the size of the encoded image which is sent
# print("Encoded size of the sent image: {0} bytes".format(len(encoded_string)))
# sending the encoded image
self.sendMessage(encoded.encode('utf-8'))
hello()
def onMessage(self, payload, isBinary):
print("Output processed image received")
output = main.image_post_process(payload)
plt.imshow(output)
plt.show()
print("Done")
reactor.stop()
# plt.show()
def onClose(self, wasClean, code, reason):
print("WebSocket connection closed: {0}".format(reason))
if __name__ == '__main__':
time1 = time.time()
import sys
from twisted.python import log
from twisted.internet import reactor
# log.startLogging(sys.stdout)
factory = WebSocketClientFactory()
factory.protocol = MyClientProtocol
reactor.connectTCP("34.73.158.146", 5903, factory)
# reactor.connectTCP("localhost", 9933, factory)
reactor.run()
time2 = time.time()
print("Total time is ", time2-time1)
скажите, пожалуйста, как я могу решить эту проблему. Спасибо