Невозможно вызвать код Python из языка дартс - PullRequest
0 голосов
/ 17 января 2019

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)

скажите, пожалуйста, как я могу решить эту проблему. Спасибо

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...