GEVENT-WEBSOCKET(1) gevent-websocket GEVENT-WEBSOCKET(1)

gevent-websocket - مستندات gevent-websocket

کتابخانهٔ gevent-websocket یک کتابخانهٔ WebSocket http://www.websocket.org/aboutwebsocket.html برای کتابخانهٔ شبکه‌ای gevent http://www.gevent.org است که توسط Jeffrey Gelens http://www.noppo.pro نوشته شده و نگهداری می‌شود. این پروژه تحت مجوز BSD منتشر شده است.

from geventwebsocket import WebSocketServer, WebSocketApplication, Resource
class EchoApplication(WebSocketApplication):
    def on_message(self, message):
        self.ws.send(message)
WebSocketServer(
    ('', 8000),
    Resource({'/': EchoApplication})
)

برای شروع استفاده از وب‌سوکت‌ها نیازی به استفاده از WebSocketServer توکار نیست. وب‌سوکت‌ها را می‌توان با در دسترس قرار دادن متغیر غیراستاندارد wsgi.websocket در محیط WSGI به سادگی به برنامه‌های موجود اضافه کرد. مثالی با استفاده از Flask http://flask.pocoo.org در ادامه آمده است:

from geventwebsocket import WebSocketServer, WebSocketError
from flask import Flask, request, render_template
app = Flask(__name__)
@app.route('/')
def index():
    return render_template('index.html')
@app.route('/api')
def api():
    ws = request.environ.get('wsgi.websocket')
    if not ws:
        abort(400, "Expected WebSocket request")
    while True:
        try:
            message = ws.receive()
            ws.send("Your message was: {}".format(message))
        except WebSocketError:
            # Possibility to execute code when connection is closed
            break
if __name__ == '__main__':
    server = WebSocketServer(("", 8000), app)
    server.serve_forever()

همچنین برنامهٔ جاوااسکریپت سمت مرورگر نیز می‌تواند بسیار ساده باشد:

<!DOCTYPE html>
<html>
<head>
  <script>
    var ws = new WebSocket("ws://localhost:8000/api");
    ws.onopen = function() {
        ws.send("Hello, world");
    };
    ws.onmessage = function (event) {
        alert(event.data);
    };
  </script>
</head>
</html>

نصب gevent-websocket با pip http://www.pip-installer.org بسیار ساده است:

$ pip install gevent-websocket

این پروژه بر روی BitBucket توسعه داده می‌شود.

می‌توانید مخزن را کلون کنید:

hg clone https://www.bitbucket.org/Jeffrey/gevent-websocket

یا فایل فشرده (tarball) را دریافت نمایید:

curl -LO https://bitbucket.org/Jeffrey/gevent-websocket/TODO

پس از دریافت یک نسخه، می‌توانید آن را درون برنامهٔ خود تعبیه کنید، یا با دستور زیر روی سیستم خود نصب نمایید:

$ python setup.py install

  • نمایه <>
  • نمایهٔ ماژول <>
  • صفحهٔ جستجو <>

Jeffrey Gelens

2013, Jeffrey Gelens

July 4, 2026 0.10