Django-sockjs-טורנדו הוא בעצם מעטפת דקה על גבי sockjs-טורנדו שהופך אותו קל מת לכתוב יישומים מבוססים WebSocket על גבי ספריית הדמיית WebSocket sockjs.
עם עטיפה זה אתה בעצם יש להם גישה לכל דבר אחר שאתה צריך מפרויקט Django שלך כגון המודלים שלך וההגדרות השונות שלך.
בגלל שאתה צריך להפעיל שני תהליכים (אחד לrunserver (או wsgi) ואחד לsocketserver) זה אומר ששני באמת תהליכי פיתון נפרדים, כך שאתה לא יכול בקלות לעשות דברים כמו רישום אותות ולעורר אותם בתהליך אחד ויש להם אש באחרת.
תחילת עבודה
צור איפשהו בכיתה זה נראה משהו כזה:
מsockjs.tornado SockJSConnection היבוא
MyConnection כיתה (SockJSConnection):
& Nbsp; def on_open (עצמית, בקשה):
& Nbsp; כרטיס
& Nbsp; def on_message (עצמית, הודעה):
& Nbsp; כרטיס
& Nbsp; def on_close (עצמי):
& Nbsp; כרטיס
בשלב הבא, אתה צריך לשים את זה בloction של הגדרה במשהו settings.py שלך ככה:
SOCKJS_CLASSES = (
& Nbsp; 'myproject.myapp.myfile.MyConnection',
)
בשלב הבא, כדי להפעיל את השרת פשוט להריץ:
socketserver manage.py פיתון [--help]
עדיין תהיה לך שרת Django הרגיל שלך גם במסוף נפרד:
פיתון manage.py runserver
עכשיו אתה אמור להיות מסוגל לכתוב Javascript העסיסי באמצעות sockjs-לקוח. אתה יכול להתחיל על ידי הורדת הגרסה העדכנית מminified CDN.
אפליקציה פשוטה עשויה להיראות כך:
גרב = SockJS החדש ('http: // localhost: 9999 / הד');
sock.onmessage = פונקציה (ה) {
& Nbsp; console.log (e.data);
};
sock.onclose = פונקציה () {
& Nbsp; console.log (סגור :( ');
};
sock.onopen = פונקציה () {
& Nbsp; console.log ('נפתח:>');
& Nbsp; letTheMadnessBegin ();
};
letTheMadnessBegin פונקציה () {
& Nbsp; // טיפשי, אבל אתה מקבל את הרעיון
& Nbsp; sock.send (JSON.stringify ({
& Nbsp; שם:. $ ('# שם') טקסט (),
& Nbsp; הודעה:. $ ('קלט') val ()
& Nbsp;}));
}
מפואר קבלה
יש טונה יותר דברים שאתה יכול לעשות עם זה כמובן. לדוגמא, ייתכן שתרצה להוסיף צורה כלשהי של אימות. מאז מטפל on_open מקבל בקשה אתה יכול להשתמש בו כדי לבקש request.get_cookie () אשר נותר לקורא כתרגיל.
יש דוגמא מעט יותר מהודרת הכלולה בחבילה זו תחת דוגמא שעשוי להביא לך כמה רעיונות. זה יישום צ'אט עובד באופן מלא שפשוט עובד.
חבילה זו בנויה בעיקר על מגישים העבודה המדהימה של קובאל בsockjs-טורנדו שבו יש הרבה יותר דוגמאות ותיעוד שעשוי לעזור לך. . כך, למשל, מפרט לדוגמא תצורת HAProxy שאולי אתה צריך ברגע שאתה לוקח את הפרויקט שלך לחיות מאז שאתה לא יכול לשמור על חשיפת יציאה 9999 על מערכת ייצור
דרישות :
- Python
- Django
תגובות לא נמצא