Rumah Java javaTutorial Bagaimana SpringBoot menggunakan WebSocket untuk menghantar mesej kumpulan

Bagaimana SpringBoot menggunakan WebSocket untuk menghantar mesej kumpulan

May 12, 2023 pm 06:55 PM
websocket springboot

WebSocket ialah protokol untuk komunikasi dupleks penuh melalui sambungan TCP tunggal yang telah diseragamkan oleh W3C. Menggunakan WebSocket menjadikan pertukaran data antara pelanggan dan pelayan lebih mudah. Dalam protokol WebSocket, penyemak imbas dan pelayan hanya perlu melengkapkan jabat tangan, dan sambungan berterusan boleh dibuat terus antara keduanya untuk penghantaran data dua arah.

Bagaimana SpringBoot menggunakan WebSocket untuk menghantar mesej kumpulan

Ciri

  • WebSocket perlu membuat sambungan terlebih dahulu apabila menggunakannya, yang menjadikan Websocket stateful protokol, sebahagian daripada maklumat status (seperti pengesahan identiti, dll.) boleh ditinggalkan dalam proses komunikasi berikutnya.

  • Sambungan WebSocket dibuat pada port 80 (ws) atau 443 (wss), port yang sama yang digunakan oleh HTTP, jadi pada asasnya semua firewall tidak akan menyekat sambungan WebSocket.

  • WebSocket menggunakan protokol HTTP untuk berjabat tangan, jadi ia boleh disepadukan secara semula jadi ke dalam pelayar web dan pelayan HTTP tanpa kos tambahan.

  • Mesej degupan jantung (ping dan pong) akan dihantar berulang kali untuk memastikan sambungan WebSocket aktif.

  • Menggunakan protokol ini, kedua-dua pelayan dan pelanggan boleh mengetahui apabila mesej dimulakan atau tiba.

  • Mesej penutupan khas akan dihantar apabila sambungan WebSocket ditutup.

  • WebSocket menyokong domain silang dan boleh mengelakkan pengehadan Ajax.

  • Spesifikasi HTTP memerlukan pelayar mengehadkan bilangan sambungan serentak kepada dua sambungan bagi setiap nama hos, tetapi apabila kami menggunakan Websocket, apabila jabat tangan selesai, had ini tidak wujud, kerana sambungan pada masa ini bukan lagi sambungan HTTP.

  • Protokol WebSocket menyokong sambungan. Pengguna boleh melanjutkan protokol untuk melaksanakan beberapa sub-protokol tersuai.

  • WebSocket mempunyai sokongan binari yang lebih baik dan pemampatan yang lebih baik.

1 Tambah kebergantungan

<dependency>
    <groupid>org.springframework.boot</groupid>
    <artifactid>spring-boot-starter-websocket</artifactid>
</dependency>
Salin selepas log masuk

2. Konfigurasikan WebSocket

Rangka kerja Spring menyediakan WebSocket. Sokongan STOMP, STOMP ialah protokol saling kendalian ringkas yang biasa digunakan untuk pemesejan tak segerak antara pelanggan melalui pelayan perantara.

@Configuration
@EnableWebSocketMessageBroker
public class WebSocketConfig implements WebSocketMessageBrokerConfigurer {
 
    @Override
    public void configureMessageBroker(MessageBrokerRegistry config) {
        // 设置消息代理的前缀,如果消息的前缀为"/topic",就会将消息转发给消息代理(broker)
        // 再由消息代理广播给当前连接的客户端
        config.enableSimpleBroker("/topic");
        // 下面方法可以配置一个或多个前缀,通过这些前缀过滤出需要被注解方法处理的消息。
        // 例如这里表示前缀为"/app"的destination可以通过@MessageMapping注解的方法处理
        // 而其他 destination(例如"/topic""/queue")将被直接交给 broker 处理
        config.setApplicationDestinationPrefixes("/app");
    }
 
    @Override
    public void registerStompEndpoints(StompEndpointRegistry registry) {
        // 定义一个前缀为"/chart"的endpoint,并开启 sockjs 支持。
        // sockjs 可以解决浏览器对WebSocket的兼容性问题,客户端将通过这里配置的URL建立WebSocket连接
        registry.addEndpoint("/chat").withSockJS();
    }
}
Salin selepas log masuk

3. Kod pelayan

Menurut konfigurasi WebSocketConfig di atas, kaedah beranotasi @MessageMapping("/hello") akan digunakan untuk menerima "/app /hello" ” laluan, selepas memproses mesej dalam kaedah anotasi, mesej dimajukan ke laluan yang ditakrifkan oleh @SendTo. Laluan @SendTo ialah laluan yang diawali dengan "/topic", jadi mesej diserahkan kepada broker mesej, dan kemudian disiarkan oleh broker.

@Controller
public class DemoController {

    @MessageMapping("/hello")
    @SendTo("/topic/greetings")
    public Message greeting(Message message) throws Exception {
        return message;
    }

}
Salin selepas log masuk
rrree

4. Kod bahagian hadapan

Buat halaman chat.html dalam direktori sumber/statik sebagai halaman sembang.

@Data
public class Message {

    private String name;
    
    private String content;

}
Salin selepas log masuk
  • SockJS ialah perpustakaan JavaScript pelayar yang menyediakan objek yang serupa dengan WebSocket. SockJS menyediakan anda dengan API Javascript penyemak imbas yang konsisten yang mencipta saluran komunikasi rentas domain kependaman rendah, dupleks penuh, antara penyemak imbas dan pelayan web.

  • STOMP bermaksud Simple (atau Streaming) Text Orientated Messaging Protocol Ia menyediakan format sambungan saling kendali yang membolehkan pelanggan STOMP berkomunikasi dengan mana-mana broker mesej STOMP (Broker) berinteraksi.

  • anotasi @SendTo, yang memajukan mesej yang diproses mengikut kaedah kepada broker, dan kemudian broker menyiarkan mesej tersebut.

5. Hasil pengesahan

Alamat permintaan kami: http://127.0.0.1:8086/chat.html

Pengguna log masuk: piao

Bagaimana SpringBoot menggunakan WebSocket untuk menghantar mesej kumpulan

Pengguna log masuk: admin

Bagaimana SpringBoot menggunakan WebSocket untuk menghantar mesej kumpulan

Atas ialah kandungan terperinci Bagaimana SpringBoot menggunakan WebSocket untuk menghantar mesej kumpulan. 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)

Gabungan Java dan WebSocket: bagaimana untuk mencapai penstriman video masa nyata Gabungan Java dan WebSocket: bagaimana untuk mencapai penstriman video masa nyata Dec 17, 2023 pm 05:50 PM

Dengan perkembangan berterusan teknologi Internet, penstriman video masa nyata telah menjadi aplikasi penting dalam bidang Internet. Untuk mencapai penstriman video masa nyata, teknologi utama termasuk WebSocket dan Java. Artikel ini akan memperkenalkan cara menggunakan WebSocket dan Java untuk melaksanakan main balik penstriman video masa nyata dan memberikan contoh kod yang berkaitan. 1. Apakah itu WebSocket? WebSocket ialah protokol untuk komunikasi dupleks penuh pada sambungan TCP tunggal

Bagaimana untuk mencapai komunikasi masa nyata menggunakan PHP dan WebSocket Bagaimana untuk mencapai komunikasi masa nyata menggunakan PHP dan WebSocket Dec 17, 2023 pm 10:24 PM

Dengan perkembangan teknologi Internet yang berterusan, komunikasi masa nyata telah menjadi bahagian yang amat diperlukan dalam kehidupan seharian. Komunikasi masa nyata yang cekap, kependaman rendah boleh dicapai menggunakan teknologi WebSockets, dan PHP, sebagai salah satu bahasa pembangunan yang paling banyak digunakan dalam bidang Internet, juga menyediakan sokongan WebSocket yang sepadan. Artikel ini akan memperkenalkan cara menggunakan PHP dan WebSocket untuk mencapai komunikasi masa nyata, dan menyediakan contoh kod khusus. 1. Apakah itu WebSocket?

Gabungan golang WebSocket dan JSON: merealisasikan penghantaran dan penghuraian data Gabungan golang WebSocket dan JSON: merealisasikan penghantaran dan penghuraian data Dec 17, 2023 pm 03:06 PM

Gabungan golangWebSocket dan JSON: merealisasikan penghantaran dan penghuraian data Dalam pembangunan Web moden, penghantaran data masa nyata menjadi semakin penting. WebSocket ialah protokol yang digunakan untuk mencapai komunikasi dua hala Tidak seperti model respons permintaan HTTP tradisional, WebSocket membenarkan pelayan untuk menolak data secara aktif kepada klien. JSON (JavaScriptObjectNotation) ialah format ringan untuk pertukaran data yang ringkas dan mudah dibaca.

WebSocket dan JavaScript: teknologi utama untuk melaksanakan sistem pemantauan masa nyata WebSocket dan JavaScript: teknologi utama untuk melaksanakan sistem pemantauan masa nyata Dec 17, 2023 pm 05:30 PM

WebSocket dan JavaScript: Teknologi utama untuk merealisasikan sistem pemantauan masa nyata Pengenalan: Dengan perkembangan pesat teknologi Internet, sistem pemantauan masa nyata telah digunakan secara meluas dalam pelbagai bidang. Salah satu teknologi utama untuk mencapai pemantauan masa nyata ialah gabungan WebSocket dan JavaScript. Artikel ini akan memperkenalkan aplikasi WebSocket dan JavaScript dalam sistem pemantauan masa nyata, memberikan contoh kod dan menerangkan prinsip pelaksanaannya secara terperinci. 1. Teknologi WebSocket

Bagaimanakah Java Websocket melaksanakan fungsi papan putih dalam talian? Bagaimanakah Java Websocket melaksanakan fungsi papan putih dalam talian? Dec 17, 2023 pm 10:58 PM

Bagaimanakah JavaWebsocket melaksanakan fungsi papan putih dalam talian? Dalam era Internet moden, orang ramai memberi lebih banyak perhatian kepada pengalaman kerjasama dan interaksi masa nyata. Papan putih dalam talian ialah fungsi yang dilaksanakan berdasarkan Websocket Ia membolehkan berbilang pengguna bekerjasama dalam masa nyata untuk mengedit papan lukisan yang sama dan menyelesaikan operasi seperti lukisan dan anotasi. Ia menyediakan penyelesaian yang mudah untuk pendidikan dalam talian, mesyuarat jarak jauh, kerjasama pasukan dan senario lain. 1. Latar belakang teknikal WebSocket ialah protokol baharu yang disediakan oleh HTML5

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

Analisis perbandingan dan perbezaan antara SpringBoot dan SpringMVC Analisis perbandingan dan perbezaan antara SpringBoot dan SpringMVC Dec 29, 2023 am 11:02 AM

SpringBoot dan SpringMVC adalah kedua-dua rangka kerja yang biasa digunakan dalam pembangunan Java, tetapi terdapat beberapa perbezaan yang jelas antara mereka. Artikel ini akan meneroka ciri dan penggunaan kedua-dua rangka kerja ini dan membandingkan perbezaannya. Mula-mula, mari belajar tentang SpringBoot. SpringBoot telah dibangunkan oleh pasukan Pivotal untuk memudahkan penciptaan dan penggunaan aplikasi berdasarkan rangka kerja Spring. Ia menyediakan cara yang pantas dan ringan untuk membina bersendirian, boleh dilaksanakan

See all articles