هذا خادم اتصال في الوقت الفعلي يعتمد على WebSocket ، تتواصل تطبيقاتك معه عبر API Simple JSON REST.
تفضل بزيارة http://channelsstream.org لمزيد من المعلومات.
استخدم من Docker:
docker pull channelstream/channelstream:latest
docker run --rm -p 8000:8000 -e CHANNELSTREAM_ALLOW_POSTING_FROM=0.0.0.0 channelstream/channelstream:latest
الحصول على مصدر من جيثب وافعل:
YOUR_PYTHON_ENV/bin/pip install channelstream
إنشاء تكوين جديد:
YOUR_PYTHON_ENV/bin/channelstream_utils make_config -o config.ini
بدء الخادم:
YOUR_PYTHON_ENV/bin/channelstream -i config.ini
تطبيقات تجريبية تعيش في https://github.com/channelstream/channelsstream_demos مستودع.
أنها تظهر أنماط شائعة المستخدمة في التطبيقات في الوقت الفعلي.
يوفر ChannelStream Explorer API الذي يمكنك استخدامه للتفاعل مع نقاط النهاية المختلفة ، وهو متوفر افتراضيًا بموجب http://127.0.0.1:8000/api- explorer.
لإرسال المعلومات ، يتفاعل العميل فقط مع تطبيق www العادي. تم التعامل مع التطبيق الخاص بك مع المصادقة ومعالجة الرسائل من العميل ، ثم تم تمريرها كرسالة موقعة إلى خادم القناة للبث.
عميل WebSocket -> WebApp (يحدث الأمان والتحول هنا) -> استدعاء REST إلى Socket Server -> بث إلى عملاء آخرين
هذا النموذج سهل التنفيذ ، آمن ، سهل التوسع ويسمح لجميع أنواع اللغات/تطبيقات العمل/العمل بالتفاعل مع خادم المقبس.
يجب توقيع جميع الرسائل مع HMAC لنقطة نهاية الوجهة ::
import requests
from itsdangerous import TimestampSigner
signer = TimestampSigner(SERVER_SECRET)
sig_for_server = signer.sign('/connect')
secret_headers = {'x-channelstream-secret': sig_for_server,
'Content-Type': 'application/json'}
response = requests.post(url, data=json.dumps(payload),
headers=secret_headers).json()
يرجى الرجوع إلى API Explorer (http://127.0.0.1:8000/api- explorer) للحصول على معلومات متعمقة حول نقاط النهاية.
بعض الأمثلة:
واجهة برمجة تطبيقات العميل
ANDER API
الردود على العميل هي في شكل قائمة تحتوي على كائنات :
أمثلة:
رسالة جديدة ::
{
"date": "2011-09-15T11:36:18.471862",
"message": MSG_PAYLOAD,
"type": "message",
"user": "NAME_OF_POSTER",
"channel": "CHAN_NAME"
}
معلومات الوجود ::
{
"date": "2011-09-15T11:43:47.434905",
"message": {"action":"joined/parted"},
"type": "presence",
"user": "NAME_OF_POSTER",
"channel": "CHAN_NAME"
}
حاليًا ، تتم إثارة أنواع الرسائل التالية: message ، message:edit ، message:delete ، presence ، user_state_change .