| GEVENT-WEBSOCKET(1) | gevent-websocket | GEVENT-WEBSOCKET(1) |
نام (NAME)
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>
- چارچوبی برای سرورهای WebSocket و زیرپروتکلهای WebSocket
- پیادهسازی RFC6455 http://datatracker.ietf.org/doc/rfc6455/?include_text=1 و Hybi-10+
- مبتنی بر gevent http://www.gevent.org: کارایی بالا، ناهمگام
- سازگاری با استانداردها (قبولی ۱۰۰٪ در آزمونهای Autobahn Websocket Testsuite http://autobahn.ws/testsuite)
توزیع و PIP (DISTRIBUTE & PIP)
نصب gevent-websocket با pip http://www.pip-installer.org بسیار ساده است:
$ pip install gevent-websocket
دریافت کد (GET THE CODE)
این پروژه بر روی BitBucket توسعه داده میشود.
میتوانید مخزن را کلون کنید:
hg clone https://www.bitbucket.org/Jeffrey/gevent-websocket
یا فایل فشرده (tarball) را دریافت نمایید:
curl -LO https://bitbucket.org/Jeffrey/gevent-websocket/TODO
پس از دریافت یک نسخه، میتوانید آن را درون برنامهٔ خود تعبیه کنید، یا با دستور زیر روی سیستم خود نصب نمایید:
$ python setup.py install
کلاسهای اصلی (MAIN CLASSES)
استثناها (EXCEPTIONS)
- نمایه <>
- نمایهٔ ماژول <>
- صفحهٔ جستجو <>
نویسندگان (AUTHORS)
Jeffrey Gelens
کپیرایت و تکثیر (COPYRIGHT)
2013, Jeffrey Gelens
| July 4, 2026 | 0.10 |