Senario: Terdapat pelayan A dan klien B, dan terdapat sambungan soket.
Apa yang saya tulis sekarang adalah bahagian B di bahagian klien, bahagian pelayan tidak dapat dikawal.
Ternyata B menghantar paket dahulu, menunggu A mengembalikan kandungan yang ditentukan, dan kemudian B menghantar paket seterusnya
def do():
s.send(...)
yield 1
s.send(...)
yield 2
# 接收到数据后的回调
def callback():
global f
next(f)
f=do()
next(f)
Sekarang saya mahu melaksanakan tamat masa dan melaksanakan penyekatan. Selepas B menghantar data, ia menyekat sehingga A mengembalikan data (atau menimbulkan ralat jika ia tidak menerima pulangan daripada A dalam masa 5 saat. Sila beritahu saya bagaimana untuk mencapai ini?
Dengan Tornado, saya tidak boleh menulis lebih daripada beberapa baris kod.
Mari kita buat Server mudah dahulu untuk memudahkan demonstrasi:
Kemudian, untuk melaksanakan Klien, logik asas adalah untuk menutup sambungan apabila tamat masa berlaku, dan kemudian mewujudkan semula sambungan: