Rumah pembangunan bahagian belakang Tutorial Python Mengintegrasikan WebSocket ke dalam rangka kerja Django

Mengintegrasikan WebSocket ke dalam rangka kerja Django

Jun 17, 2023 pm 12:00 PM
websocket bersepadu django

WebSocket ialah protokol komunikasi masa nyata yang lebih ringan dan cekap daripada protokol HTTP dan boleh melaksanakan fungsi seperti bilik sembang dan pemberitahuan masa nyata. Dalam Django, kami boleh menyepadukan WebSocket ke dalam rangka kerja dengan memanfaatkan perpustakaan Saluran Django untuk mencapai komunikasi masa nyata.

Pertama, kita perlu memasang Django dan pustaka Saluran Django. Ia boleh dipasang melalui alat pip, atau alat pengurusan pakej lain seperti conda boleh digunakan.

pip install django
Salin selepas log masuk
rrree

Seterusnya, kita perlu mencipta projek Django Anda boleh mencipta projek bernama "myproject" dengan menggunakan arahan berikut.

pip install channels
Salin selepas log masuk

Dalam projek, kita perlu mencipta aplikasi dan folder untuk menyimpan kod WebSockets. Aplikasi bernama "chat" boleh dibuat menggunakan arahan berikut.

django-admin startproject myproject
Salin selepas log masuk

Seterusnya, buat fail yang dipanggil "routing.py" yang mentakrifkan konfigurasi penghalaan WebSocket.

python manage.py startapp chat
Salin selepas log masuk

Dalam kod di atas, kami mentakrifkan laluan "websocket", yang akan menghalakan permintaan WebSocket melalui "URLRouter" ke laluan yang sepadan dengan "/ws/chat/". "ChatConsumer" di sini ialah kelas pengguna yang digunakan untuk mengendalikan permintaan WebSocket.

Seterusnya, kita perlu mencipta fail yang dipanggil "consumers.py" untuk menulis kod yang mengendalikan permintaan WebSocket.

from channels.routing import ProtocolTypeRouter, URLRouter
from django.urls import path
from chat.consumers import ChatConsumer

application = ProtocolTypeRouter({
    "websocket": URLRouter([
        path("ws/chat/", ChatConsumer.as_asgi())
    ])
})
Salin selepas log masuk

Dalam kod di atas, kami telah mencipta kelas pengguna yang dipanggil "ChatConsumer" yang mewarisi kelas "AsyncWebsocketConsumer". Terdapat tiga kaedah dalam kelas ini:

  • kaedah "sambung": Kaedah ini akan dipanggil apabila sambungan WebSocket diwujudkan.
  • Kaedah "putus sambungan": Kaedah ini akan dipanggil apabila sambungan WebSocket ditutup.
  • Kaedah "terima": Kaedah ini akan dipanggil apabila mesej WebSocket diterima.

Dalam kelas pengguna ini, kami hanya melaksanakan kaedah "sambung" dan "terima". Apabila sambungan WebSocket diwujudkan, kaedah "sambung" akan dipanggil dan sambungan akan diterima melalui kaedah "terima". Dalam kaedah "terima" kita boleh memproses mesej yang diterima dan menghantar respons kepada pelanggan melalui kaedah "hantar".

Akhir sekali, kami perlu mendayakan pustaka Saluran dalam fail tetapan Django. Tambahkan konfigurasi berikut dalam "settings.py" dalam folder "myproject":

import json
from channels.generic.websocket import AsyncWebsocketConsumer

class ChatConsumer(AsyncWebsocketConsumer):
    async def connect(self):
        await self.accept()

    async def disconnect(self, close_code):
        pass

    async def receive(self, text_data):
        text_data_json = json.loads(text_data)
        message = text_data_json['message']

        await self.send(text_data=json.dumps({
            'message': message
        }))
Salin selepas log masuk

Dalam kod di atas, kami menambah aplikasi "saluran" dan "sembang" pada "INSTALLED_APPS", dan kemudian Sediakan aplikasi yang ditakrifkan dalam fail "routing.py" yang baru kami buat dalam "ASGI_APPLICATION".

Baiklah, kini kami telah melengkapkan tetapan yang berkaitan untuk menyepadukan WebSocket dalam Django. Pelayan pembangunan Django boleh dimulakan dengan arahan berikut:

INSTALLED_APPS = [
    ... # 其他应用程序
    'channels',
    'chat'
]

ASGI_APPLICATION = 'myproject.routing.application'
Salin selepas log masuk

Kemudian, anda boleh menggunakan klien WebSocket seperti pelayar untuk menghantar mesej ke "ws://localhost:8000/ws/chat/" laluan dan terima daripada kami Respons yang dihantar oleh perkhidmatan WebSocket yang baru anda tulis.

Ringkasnya, dengan menggunakan pustaka Saluran Django, kami boleh menyepadukan WebSocket dengan mudah ke dalam rangka kerja Django untuk mencapai fungsi komunikasi masa nyata. Pendekatan ini membolehkan kami melaksanakan aplikasi yang memerlukan komunikasi masa nyata seperti bilik sembang dan pemberitahuan masa nyata dengan lebih fleksibel dan cekap.

Atas ialah kandungan terperinci Mengintegrasikan WebSocket ke dalam rangka kerja Django. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Kenyataan Laman Web ini
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn

Alat AI Hot

Undresser.AI Undress

Undresser.AI Undress

Apl berkuasa AI untuk mencipta foto bogel yang realistik

AI Clothes Remover

AI Clothes Remover

Alat AI dalam talian untuk mengeluarkan pakaian daripada foto.

Undress AI Tool

Undress AI Tool

Gambar buka pakaian secara percuma

Clothoff.io

Clothoff.io

Penyingkiran pakaian AI

AI Hentai Generator

AI Hentai Generator

Menjana ai hentai secara percuma.

Artikel Panas

R.E.P.O. Kristal tenaga dijelaskan dan apa yang mereka lakukan (kristal kuning)
3 minggu yang lalu By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O. Tetapan grafik terbaik
3 minggu yang lalu By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O. Cara Memperbaiki Audio Jika anda tidak dapat mendengar sesiapa
3 minggu yang lalu By 尊渡假赌尊渡假赌尊渡假赌
WWE 2K25: Cara Membuka Segala -galanya Di Myrise
3 minggu yang lalu By 尊渡假赌尊渡假赌尊渡假赌

Alat panas

Notepad++7.3.1

Notepad++7.3.1

Editor kod yang mudah digunakan dan percuma

SublimeText3 versi Cina

SublimeText3 versi Cina

Versi Cina, sangat mudah digunakan

Hantar Studio 13.0.1

Hantar Studio 13.0.1

Persekitaran pembangunan bersepadu PHP yang berkuasa

Dreamweaver CS6

Dreamweaver CS6

Alat pembangunan web visual

SublimeText3 versi Mac

SublimeText3 versi Mac

Perisian penyuntingan kod peringkat Tuhan (SublimeText3)

Django vs. Flask: Analisis perbandingan rangka kerja web Python Django vs. Flask: Analisis perbandingan rangka kerja web Python Jan 19, 2024 am 08:36 AM

Django dan Flask adalah kedua-duanya peneraju dalam rangka kerja Web Python, dan kedua-duanya mempunyai kelebihan dan senario yang boleh digunakan. Artikel ini akan menjalankan analisis perbandingan kedua-dua rangka kerja ini dan memberikan contoh kod khusus. Pengenalan Pembangunan Django ialah rangka kerja Web berciri penuh, tujuan utamanya adalah untuk membangunkan aplikasi Web yang kompleks dengan cepat. Django menyediakan banyak fungsi terbina dalam, seperti ORM (Pemetaan Hubungan Objek), borang, pengesahan, bahagian belakang pengurusan, dsb. Ciri-ciri ini membolehkan Django mengendalikan besar

Kebaikan dan Keburukan Rangka Kerja Django: Semua yang Anda Perlu Tahu Kebaikan dan Keburukan Rangka Kerja Django: Semua yang Anda Perlu Tahu Jan 19, 2024 am 09:09 AM

Django ialah rangka kerja pembangunan lengkap yang merangkumi semua aspek kitaran hayat pembangunan web. Pada masa ini, rangka kerja ini merupakan salah satu rangka kerja web yang paling popular di seluruh dunia. Jika anda bercadang untuk menggunakan Django untuk membina aplikasi web anda sendiri, maka anda perlu memahami kelebihan dan kekurangan rangka kerja Django. Berikut ialah semua yang anda perlu ketahui, termasuk contoh kod khusus. Kelebihan Django: 1. Pembangunan pesat-Djang boleh membangunkan aplikasi web dengan cepat. Ia menyediakan perpustakaan yang kaya dan dalaman

PHP dan WebSocket: Amalan terbaik untuk pemindahan data masa nyata PHP dan WebSocket: Amalan terbaik untuk pemindahan data masa nyata Dec 18, 2023 pm 02:10 PM

PHP dan WebSocket: Kaedah Amalan Terbaik untuk Pemindahan Data Masa Nyata Pengenalan: Dalam pembangunan aplikasi web, pemindahan data masa nyata merupakan keperluan teknikal yang sangat penting. Protokol HTTP tradisional ialah protokol model tindak balas permintaan dan tidak boleh mencapai penghantaran data masa nyata dengan berkesan. Untuk memenuhi keperluan penghantaran data masa nyata, protokol WebSocket telah wujud. WebSocket ialah protokol komunikasi dupleks penuh yang menyediakan cara untuk berkomunikasi dupleks penuh melalui sambungan TCP tunggal. Berbanding dengan H

SSE dan WebSocket SSE dan WebSocket Apr 17, 2024 pm 02:18 PM

Dalam artikel ini, kami akan membandingkan Acara Dihantar Pelayan (SSE) dan WebSockets, kedua-duanya adalah kaedah yang boleh dipercayai untuk menyampaikan data. Kami akan menganalisisnya dalam lapan aspek, termasuk arah komunikasi, protokol asas, keselamatan, kemudahan penggunaan, prestasi, struktur mesej, kemudahan penggunaan dan alat ujian. Perbandingan aspek-aspek ini diringkaskan seperti berikut: Kategori Peristiwa Dihantar Pelayan (SSE) WebSocket Arah Komunikasi Sehala Dwi-arah Protokol Pendasar HTTP WebSocket Protocol Keselamatan Sama seperti HTTP Kerentanan keselamatan sedia ada Kemudahan penggunaan Tetapan Tetapan mudah Prestasi kompleks Kelajuan penghantaran mesej pantas Dijejaskan oleh pemprosesan mesej dan pengurusan sambungan Struktur mesej Teks biasa atau binari Kemudahan penggunaan Tersedia secara meluas Berguna untuk penyepaduan WebSocket

Panduan pembangunan PHP Websocket untuk melaksanakan fungsi terjemahan masa nyata Panduan pembangunan PHP Websocket untuk melaksanakan fungsi terjemahan masa nyata Dec 18, 2023 pm 05:52 PM

Panduan Pembangunan Soket Web PHP: Melaksanakan Fungsi Terjemahan Masa Nyata Pengenalan: Dengan perkembangan Internet, komunikasi masa nyata menjadi semakin penting dalam pelbagai senario aplikasi. Sebagai protokol komunikasi yang baru muncul, Websocket menyediakan sokongan yang baik untuk komunikasi masa nyata. Artikel ini akan membawa anda melalui pemahaman terperinci tentang cara menggunakan PHP untuk membangunkan aplikasi Websocket, dan menggabungkan fungsi terjemahan masa nyata untuk menunjukkan aplikasi khususnya. 1. Apakah protokol Websocket? Protokol Websocket ialah a

Cara menaik taraf versi Django: langkah dan pertimbangan Cara menaik taraf versi Django: langkah dan pertimbangan Jan 19, 2024 am 10:16 AM

Cara menaik taraf versi Django: langkah dan pertimbangan, contoh kod khusus diperlukan Pengenalan: Django ialah rangka kerja Web Python yang berkuasa yang sentiasa dikemas kini dan dinaik taraf untuk memberikan prestasi yang lebih baik dan lebih banyak ciri. Walau bagaimanapun, bagi pembangun yang menggunakan versi lama Django, menaik taraf Django mungkin menghadapi beberapa cabaran. Artikel ini akan memperkenalkan langkah dan langkah berjaga-jaga tentang cara untuk meningkatkan versi Django dan memberikan contoh kod khusus. 1. Sandarkan fail projek sebelum menaik taraf Djan

Petua Pembangunan Soket Web Java: Cara Mengendalikan Sambungan Serentak Petua Pembangunan Soket Web Java: Cara Mengendalikan Sambungan Serentak Dec 18, 2023 pm 05:33 PM

Petua pembangunan Java Websocket: Cara mengendalikan sambungan serentak Dalam era Internet hari ini, komunikasi masa nyata telah menjadi keperluan penting. Sebagai teknologi yang membolehkan komunikasi dua hala masa nyata, Java Websocket semakin digemari oleh pembangun. Walau bagaimanapun, dalam aplikasi praktikal, pengendalian sambungan serentak adalah masalah yang mesti diselesaikan. Artikel ini akan memperkenalkan beberapa teknik pembangunan JavaWebsocket untuk membantu anda mengendalikan sambungan serentak dengan lebih baik, sambil memberikan contoh kod khusus. 1. Konsep asas secara mendalam

Analisis strategi integrasi API Oracle: mencapai komunikasi lancar antara sistem Analisis strategi integrasi API Oracle: mencapai komunikasi lancar antara sistem Mar 07, 2024 pm 10:09 PM

Analisis strategi penyepaduan API Oracle: Untuk mencapai komunikasi yang lancar antara sistem, contoh kod khusus diperlukan Dalam era digital hari ini, sistem perusahaan dalaman perlu berkomunikasi antara satu sama lain dan berkongsi data, dan Oracle API ialah salah satu alat penting untuk membantu mencapai kelancaran. komunikasi antara sistem. Artikel ini akan bermula dengan konsep dan prinsip asas OracleAPI, meneroka strategi penyepaduan API, dan akhirnya memberikan contoh kod khusus untuk membantu pembaca memahami dan menggunakan OracleAPI dengan lebih baik. 1. API Oracle Asas

See all articles