sockjs-พายุทอร์นาโดเป็นเซิร์ฟเวอร์หลามคู่ด้านข้างของเบราว์เซอร์ห้องสมุด SockJS ลูกค้าที่ทำงานอยู่บนด้านบนของกรอบทอร์นาโด
ย่อเซิร์ฟเวอร์สะท้อน SockJS สามารถมองมากหรือน้อยเช่น:
นำเข้าจากเว็บทอร์นาโด ioloop
จากการนำเข้า SockJSRouter sockjs.tornado, SockJSConnection
ชั้น EchoConnection (SockJSConnection):
& nbsp; def ON_MESSAGE (ตัวเอง, ผงชูรส):
& nbsp; self.send (ผงชูรส)
ถ้า __name__ == '__main__'
& nbsp; EchoRouter = SockJSRouter (EchoConnection '/ ก้อง')
& nbsp; การตรวจสอบ = web.Application (EchoRouter.urls)
& nbsp; app.listen (9999)
& nbsp;. ioloop.IOLoop.instance () เริ่มต้น ()
(ลองดูที่ตัวอย่างสำหรับรุ่นที่สมบูรณ์)
สมัครสมาชิก SockJS รายชื่อผู้รับจดหมายสำหรับการอภิปรายและการสนับสนุน
SockJS-พายุทอร์นาโด API
SockJS ให้ API แตกต่างกันเล็กน้อยกว่า _tornado.websocket_ ความแตกต่างหลักคือ
- ขึ้นอยู่กับการขนส่ง, การเชื่อมต่อลูกค้าที่เกิดขึ้นจริงอาจจะหรืออาจจะไม่ได้มี ดังนั้นไม่มี _self.request_ และคุณสมบัติ _tornado.web.RequestHandler_ อื่น ๆ
- เปลี่ยนชื่อเรียกกลับ _open_ เพื่อ _on_open_ จะมีมากขึ้นสอดคล้องกับการเรียกกลับอื่น ๆ
- แทนที่จะ _write_message_ ข้อความทั้งหมดจะถูกส่งโดยใช้วิธี _send_ ในกรณีที่ _send_ ใน _tornado.web.RequestHandler_ ส่งข้อมูลดิบผ่านการเชื่อมต่อโดยไม่ต้องเข้ารหัสมัน
- มีฟังก์ชั่นที่มีประโยชน์ _broadcast_ ซึ่งยอมรับรายการ (หรือ iterator) ของลูกค้าและข้อความที่จะส่ง
การตั้งค่า
คุณสามารถส่งผ่านการตั้งค่าต่างๆจะ _SockJSRouter_ ในพจนานุกรม:
MyRouter = SockJSRouter (MyConnection '/ ของฉัน', Dict (disabled_transports = ['WebSocket']))
การใช้งาน
sockjs-พายุทอร์นาโดอย่างถูกต้องทำงานอยู่หลัง haproxy และขอแนะนำวิธีการใช้งาน
แฟ้มการกำหนดค่าตัวอย่างสามารถพบได้ที่นี่
หากบันทึกของคุณเต็มไปด้วย "คำเตือน: ปิดการเชื่อมต่อโดยลูกค้า" ผ่าน _no_keep_alive_ เป็น _True_ เพื่อ _HTTPServer_ คอนสตรัค:
HTTPServer (app, no_keep_alive = True) .listen (พอร์ต)
หรือ:
app.listen (พอร์ต, no_keep_alive = True)
มีอะไรใหม่ ในข่าวประชาสัมพันธ์นี้:
- เพิ่มการสนับสนุนสำหรับห้องสมุด simplejson เก่า รุ่น
- สคริปต์การติดตั้งคงที่
ต้องการ
- หลาม
ความคิดเห็นที่ไม่พบ