.\" Man page generated from reStructuredText .\" by the Docutils 0.23 manpage writer. . . .nr rst2man-indent-level 0 . .de1 rstReportMargin \\$1 \\n[an-margin] level \\n[rst2man-indent-level] level margin: \\n[rst2man-indent\\n[rst2man-indent-level]] - \\n[rst2man-indent0] \\n[rst2man-indent1] \\n[rst2man-indent2] .. .de1 INDENT .\" .rstReportMargin pre: . RS \\$1 . nr rst2man-indent\\n[rst2man-indent-level] \\n[an-margin] . nr rst2man-indent-level +1 .\" .rstReportMargin post: .. .de UNINDENT . RE .\" indent \\n[an-margin] .\" old: \\n[rst2man-indent\\n[rst2man-indent-level]] .nr rst2man-indent-level -1 .\" new: \\n[rst2man-indent\\n[rst2man-indent-level]] .in \\n[rst2man-indent\\n[rst2man-indent-level]]u .. .TH "GEVENT-WEBSOCKET" "1" "Jul 04, 2026" "0.10" "gevent-websocket" .SH "نام (NAME)" gevent-websocket \- مستندات gevent-websocket .sp کتابخانهٔ gevent\-websocket یک کتابخانهٔ WebSocket \% برای کتابخانهٔ شبکه‌ای gevent \% است که توسط Jeffrey Gelens \% نوشته شده و نگهداری می‌شود. این پروژه تحت مجوز BSD منتشر شده است. .INDENT 0.0 .INDENT 3.5 .sp .EX from geventwebsocket import WebSocketServer, WebSocketApplication, Resource class EchoApplication(WebSocketApplication): def on_message(self, message): self.ws.send(message) WebSocketServer( (\(aq\(aq, 8000), Resource({\(aq/\(aq: EchoApplication}) ) .EE .UNINDENT .UNINDENT .sp برای شروع استفاده از وب‌سوکت‌ها نیازی به استفاده از \fIWebSocketServer\fP توکار نیست. وب‌سوکت‌ها را می‌توان با در دسترس قرار دادن متغیر غیراستاندارد \fIwsgi.websocket\fP در محیط WSGI به سادگی به برنامه‌های موجود اضافه کرد. مثالی با استفاده از Flask \% در ادامه آمده است: .INDENT 0.0 .INDENT 3.5 .sp .EX from geventwebsocket import WebSocketServer, WebSocketError from flask import Flask, request, render_template app = Flask(__name__) @app.route(\(aq/\(aq) def index(): return render_template(\(aqindex.html\(aq) @app.route(\(aq/api\(aq) def api(): ws = request.environ.get(\(aqwsgi.websocket\(aq) if not ws: abort(400, \(dqExpected WebSocket request\(dq) while True: try: message = ws.receive() ws.send(\(dqYour message was: {}\(dq.format(message)) except WebSocketError: # Possibility to execute code when connection is closed break if __name__ == \(aq__main__\(aq: server = WebSocketServer((\(dq\(dq, 8000), app) server.serve_forever() .EE .UNINDENT .UNINDENT .sp همچنین برنامهٔ جاوااسکریپت سمت مرورگر نیز می‌تواند بسیار ساده باشد: .INDENT 0.0 .INDENT 3.5 .sp .EX .EE .UNINDENT .UNINDENT .INDENT 0.0 .IP \(bu 2 چارچوبی برای سرورهای WebSocket و زیرپروتکل‌های WebSocket .IP \(bu 2 پیاده‌سازی RFC6455 \% و Hybi\-10+ .IP \(bu 2 مبتنی بر gevent \%: کارایی بالا، ناهمگام .IP \(bu 2 سازگاری با استانداردها (قبولی ۱۰۰٪ در آزمون‌های Autobahn Websocket Testsuite \%) .UNINDENT .SH "توزیع و PIP (DISTRIBUTE & PIP)" .sp نصب gevent\-websocket با pip \% بسیار ساده است: .INDENT 0.0 .INDENT 3.5 .sp .EX $ pip install gevent\-websocket .EE .UNINDENT .UNINDENT .SH "دریافت کد (GET THE CODE)" .sp این پروژه بر روی BitBucket توسعه داده می‌شود. .sp می‌توانید مخزن را کلون کنید: .INDENT 0.0 .INDENT 3.5 .sp .EX hg clone https://www.bitbucket.org/Jeffrey/gevent\-websocket .EE .UNINDENT .UNINDENT .sp یا فایل فشرده (tarball) را دریافت نمایید: .INDENT 0.0 .INDENT 3.5 .sp .EX curl \-LO https://bitbucket.org/Jeffrey/gevent\-websocket/TODO .EE .UNINDENT .UNINDENT .sp پس از دریافت یک نسخه، می‌توانید آن را درون برنامهٔ خود تعبیه کنید، یا با دستور زیر روی سیستم خود نصب نمایید: .INDENT 0.0 .INDENT 3.5 .sp .EX $ python setup.py install .EE .UNINDENT .UNINDENT .SH "کلاس‌های اصلی (MAIN CLASSES)" .SH "استثناها (EXCEPTIONS)" .INDENT 0.0 .IP \(bu 2 نمایه \%<> .IP \(bu 2 نمایهٔ ماژول \%<> .IP \(bu 2 صفحهٔ جستجو \%<> .UNINDENT .SH "نویسندگان (AUTHORS)" Jeffrey Gelens .SH "کپی‌رایت و تکثیر (COPYRIGHT)" 2013, Jeffrey Gelens .\" End of generated man page.