Найти - Пользователи
Полная версия: Кто нибудь может дать простой код работающего tornado HTTPServer-а и клиента к нему написанного на питоне
Начало » Network » Кто нибудь может дать простой код работающего tornado HTTPServer-а и клиента к нему написанного на питоне
1
BOBAH
главная цель - ответ на любой запрос массивом данных
2-ой день мучаюсь уже запутался где, что и как, можно даже без комментариев главное чтоб работал.
BOBAH
TSP server это конечно хорошо, но насколько я понимаю, например на heroku он работать не будет, или я неправильно понимаю???
FishHook
BOBAH, а почему вы так решили? Поделитесь размышлениями.
vic57
BOBAH
TSP server это конечно хорошо, но насколько я понимаю, например на heroku он работать не будет, или я неправильно понимаю???
ну так возьмите helloworld из примеров.
 import tornado.ioloop
import tornado.web
from random import randint 
def f(l,n):
    return ' '.join([str(randint(-n,n)) for _ in range(l)])
class MainHandler(tornado.web.RequestHandler):
    def get(self):
        self.write(f(100,100))
if __name__ == "__main__":
    app = tornado.web.Application([
        (r"/", MainHandler),
    ])
    app.listen(8000)
    tornado.ioloop.IOLoop.current().start()
 >>> import requests
>>> r = requests.get('http://localhost:8000')
>>> r
<Response [200]>
>>> r.text
'11 -95 55 10 1 28 -24 59 -72 28 -49 8 83 -78 64 -68 -40 -48 -23 43 -67 12 76 -21 20 56 -77 -89 -98 -86 53 63 62 -94 -28 48 0 -51 -26 -85 75 9 -15 44 95 -20 -82 27 33 -36 8 31 100 85 38 93 -89 -7 25 92 72 24 -12 -78 52 40 -15 -89 -85 -92 78 12 -55 86 -97 -13 -10 8 -43 43 -28 47 39 57 23 -90 -83 -24 -99 -70 74 -90 -80 11 -85 -66 93 -28 -95 39'
>>> 


BOBAH
FishHook
а почему вы так решили? Поделитесь размышлениями.

Мои размышления:
Адрес TCP сервера: 127.0.0.1
Адрес HTTP сервера: http:server.com/

поскольку 1-го я не увидел, предположил, что так просто, для использования, его не получить.


vic57
ну так возьмите helloworld из примеров.
А при использовании web - все данные легко читаются даже в окне браузера.

Заранее приношу извинения, если не прав.

vic57
BOBAH
А при использовании web - все данные легко читаются даже в окне браузера.
так браузер и есть клиент в данном случае. вы чего хотите-то?
клиент отправляет запросы, сервер на них отвечает и неважно на чем клиент написан
BOBAH
Решил использовать WebSocket от tornado, код если кому надо:
 from tornado.web import Application
from tornado.websocket import WebSocketHandler
from tornado.ioloop import IOLoop
from tornado.options import options, define
define(name='port', default="PORT", help='Port')
class MyServer(WebSocketHandler):
    def open(self, *args: str, **kwargs: str):
        self.write_message('Вы подключились к серверу')
def main():
    print('Server run')
    options.parse_command_line()
    app = Application([('/', MyServer)])
    app.listen(options.port)
    IOLoop.instance().start()
if __name__ == '__main__':
    main()
Procfile(для heroku):
web: python server.py - -port=$PORT
BOBAH
А ну еще мой велосипедный client:
 from tornado.ioloop import IOLoop
from tornado.websocket import websocket_connect
from tornado.gen import coroutine
class Client():
    def __init__(self, url):
        self.url = url
        self.ws = None
        self.ioloop = IOLoop().instance()
        self.connect()
        self.ioloop.start()
    @coroutine
    def connect(self):
        print('Попытка подключения')
        try:
            self.ws = yield websocket_connect(self.url)
        except Exception as s:
            print('Ошибка', s)
        else:
            print('Подключенно')
            self.run()
    @coroutine
    def run(self):
        while True:
            message = yield self.ws.read_message()
            if message is None:
                self.ws = None
                print('Соединение прерванно')
                break
            print(message)
if __name__ == '__main__':
    Client('ws://domain.name')
vic57
BOBAH
Решил использовать WebSocket от tornado, код если кому надо:
у вас кроме соединения и нет ничего, как это использовать ?
https://en.proft.me/2014/05/16/realtime-web-application-tornado-and-websocket/
This is a "lo-fi" version of our main content. To view the full version with more information, formatting and images, please click here.
Powered by DjangoBB