Rumah hujung hadapan web uni-app Cara menggunakan stomp dalam uniapp

Cara menggunakan stomp dalam uniapp

May 21, 2023 pm 10:34 PM

Dengan pembangunan aplikasi web moden, semakin ramai pembangun menggunakan teknologi WebSocket untuk komunikasi masa nyata. Walau bagaimanapun, jika anda perlu menggunakan broker mesej, khususnya ActiveMQ atau RabbitMQ, maka protokol STOMP ialah pilihan lain yang patut dipertimbangkan. Apabila membangunkan aplikasi mudah alih, Uniapp ialah rangka kerja pembangunan yang patut dicuba, yang boleh membantu anda membangunkan aplikasi merentas platform dengan cara yang lebih cekap. Dalam artikel ini, kami akan meneroka cara menggunakan protokol STOMP untuk komunikasi masa nyata dalam Uniapp.

Pertama, kita perlu memahami konsep asas dan penggunaan protokol STOMP. STOMP (Simple (atau Streaming) Text Oriented Messaging Protocol) ialah protokol berasaskan teks yang biasanya digunakan untuk komunikasi antara broker mesej, tetapi juga boleh digunakan untuk komunikasi antara penyemak imbas dan pelayan. Ia direka bentuk untuk ringkas, mudah dilaksanakan dan menyokong berbilang bahasa pengaturcaraan. Ia berdasarkan model pelayan pelanggan dan beroperasi pada mesej menggunakan arahan dan pengepala mesej.

Untuk menggunakan protokol STOMP dalam Uniapp, kita perlu menggunakan klien STOMP. Di bawah ini kita akan melihat menggunakan perpustakaan JavaScript yang dipanggil stompjs untuk mencapai ini. Stompjs ialah perpustakaan yang stabil dan boleh dipercayai dengan penggunaan meluas dan tersedia melalui pengurus pakej npm.

Pertama, dalam direktori akar projek Uniapp, buka terminal dan pasang stompjs:

npm install stompjs --save
Salin selepas log masuk

Dalam Uniapp, kami menggunakan Vue.js untuk pembangunan, jadi kami perlu menggabungkan stompjs dengan Vue .js bersepadu. Kami boleh mencipta pemalam Vue.js yang akan mendaftarkan klien STOMP dalam konteks aplikasi.

Buat fail bernama stomp.js dalam direktori src/plugins Ia akan kelihatan seperti ini:

import Stomp from 'stompjs';

const setConnected = connected => {
    store.commit('stomp/setConnected', connected);
};

const stompPlugin = {
    install(Vue, options) {
        const { url, username, password } = options;
        const socket = new WebSocket(url);
        const stompClient = Stomp.over(socket);

        // set stompClient's credentials if needed
        if (username && password) {
            stompClient.connect(username, password, () => {
                setConnected(true);
            });
        } else {
            stompClient.connect({}, () => {
                setConnected(true);
            });
        }

        Vue.prototype.$stompClient = stompClient;
    },
};

export default stompPlugin;
Salin selepas log masuk

Pemalam menerima objek konfigurasi stomp.js. dengan url ialah alamat titik akhir WebSocket proksi STOMP, dan nama pengguna serta kata laluan ialah kelayakan proksi STOMP pilihan.

Seterusnya, kita perlu memuatkan pemalam stomp.js dan semua konfigurasinya dalam fail main.js aplikasi Vue, seperti yang ditunjukkan di bawah:

import Vue from 'vue';
import App from './App';
import router from './router';
import store from './store';

import stompPlugin from '@/plugins/stomp';

Vue.config.productionTip = false;

Vue.use(stompPlugin, {
    url: 'ws://localhost:15674/ws',
    username: 'guest',
    password: 'guest',
});

new Vue({
    router,
    store,
    render: h => h(App),
}).$mount('#app');
Salin selepas log masuk

Kod di atas akan memuatkan stomp Pemalam .js Lekapkannya pada Vue dan lulus konfigurasinya bersama objek pilihan. Selain itu, kami perlu mentakrifkan beberapa keadaan dan tindakan dalam fail store.js aplikasi Vue untuk menjejak status sambungan klien STOMP. Beginilah rupa fail store.js:

const stomp = {
    state: {
        connected: false,
    },
    getters: {
        connected: state => state.connected,
    },
    mutations: {
        setConnected(state, connected) {
            state.connected = connected;
        },
    },
    actions: {},
};

export default new Vuex.Store({
    modules: {
        stomp,
    },
});
Salin selepas log masuk

Akhir sekali, kami perlu menguji sama ada sambungan berjaya. Tambahkan kod berikut pada komponen Vue anda:

export default {
    mounted() {
        // subscribe to our demo channel:
        this.$stompClient.subscribe('/queue/demo', message => {
            console.log(message.body);
        });
    },
};
Salin selepas log masuk

Dalam kod di atas, kami menggunakan ini.$stompClient untuk mendapatkan contoh klien STOMP berdaftar, dan melanggan satu demo bernama melalui baris gilir kaedah subscribe(). Apabila mesej baharu tiba, kami akan menerima output console.log().

Kini anda boleh menggunakan protokol STOMP untuk komunikasi masa nyata dalam Uniapp. Komunikasi masa nyata sedemikian boleh menjadi sangat berguna dalam banyak senario aplikasi. Sudah tentu, pelaksanaan khusus akan berbeza-beza bergantung pada projek masing-masing, tetapi kaedah di atas sudah cukup untuk memberi anda inspirasi.

Atas ialah kandungan terperinci Cara menggunakan stomp dalam uniapp. 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 尊渡假赌尊渡假赌尊渡假赌

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)

Bagaimana saya mengendalikan storan tempatan di uni-app? Bagaimana saya mengendalikan storan tempatan di uni-app? Mar 11, 2025 pm 07:12 PM

Artikel ini memperincikan API penyimpanan tempatan Uni-App (uni.setstoragesync (), uni.getstoragesync (), dan rakan-rakan async mereka), menekankan amalan terbaik seperti menggunakan kekunci deskriptif, mengehadkan saiz data, dan mengendalikan parsing JSON. Ia menekankan bahawa lo

Bagaimana saya membuat permintaan API dan mengendalikan data dalam uni app? Bagaimana saya membuat permintaan API dan mengendalikan data dalam uni app? Mar 11, 2025 pm 07:09 PM

Butiran artikel ini membuat dan mendapatkan permintaan API dalam Uni-app menggunakan Uni.request atau Axios. Ia meliputi pengendalian tindak balas JSON, amalan keselamatan terbaik (HTTPS, pengesahan, pengesahan input), kegagalan penyelesaian masalah (isu rangkaian, kors, s

Bagaimana saya menggunakan API Geolocation Uni-App? Bagaimana saya menggunakan API Geolocation Uni-App? Mar 11, 2025 pm 07:14 PM

Artikel ini memperincikan API Geolocation Uni-App, yang memberi tumpuan kepada uni.getLocation (). Ia menangani perangkap biasa seperti sistem koordinat yang salah (GCJ02 vs WGS84) dan isu kebenaran. Meningkatkan ketepatan lokasi melalui bacaan dan pengendalian purata

Bagaimanakah saya menguruskan Negeri dalam Uni App menggunakan Vuex atau Pinia? Bagaimanakah saya menguruskan Negeri dalam Uni App menggunakan Vuex atau Pinia? Mar 11, 2025 pm 07:08 PM

Artikel ini membandingkan Vuex dan Pinia untuk pengurusan negeri di Uni-App. Ia memperincikan ciri -ciri, pelaksanaan, dan amalan terbaik mereka, menonjolkan kesederhanaan Pinia berbanding struktur Vuex. Pilihan bergantung pada kerumitan projek, dengan pinia sutia

Bagaimana saya menggunakan API perkongsian sosial Uni-app? Bagaimana saya menggunakan API perkongsian sosial Uni-app? Mar 13, 2025 pm 06:30 PM

Artikel ini memperincikan bagaimana untuk mengintegrasikan perkongsian sosial ke dalam projek Uni-app menggunakan API Uni.share, meliputi persediaan, konfigurasi, dan ujian di seluruh platform seperti WeChat dan Weibo.

Bagaimanakah saya menggunakan ciri Easycom Uni-App untuk pendaftaran komponen automatik? Bagaimanakah saya menggunakan ciri Easycom Uni-App untuk pendaftaran komponen automatik? Mar 11, 2025 pm 07:11 PM

Artikel ini menerangkan ciri Easycom UNI-APP, mengautomasikan pendaftaran komponen. Ia memperincikan konfigurasi, termasuk pemetaan komponen autoscan dan adat, menonjolkan faedah seperti dikurangkan boilerplate, kelajuan yang lebih baik, dan kebolehbacaan yang dipertingkatkan.

Bagaimanakah saya menggunakan preprocessors (sass, kurang) dengan uni-app? Bagaimanakah saya menggunakan preprocessors (sass, kurang) dengan uni-app? Mar 18, 2025 pm 12:20 PM

Artikel membincangkan menggunakan SASS dan kurang preprocessors dalam UNI-APP, memperincikan persediaan, faedah, dan penggunaan dwi. Fokus utama adalah pada konfigurasi dan kelebihan. [159 aksara]

Bagaimanakah saya menggunakan API Uni.request Uni-App untuk membuat permintaan HTTP? Bagaimanakah saya menggunakan API Uni.request Uni-App untuk membuat permintaan HTTP? Mar 11, 2025 pm 07:13 PM

Artikel ini butiran API UNI.REQUEST dalam UNI-APP untuk membuat permintaan HTTP. Ia meliputi penggunaan asas, pilihan lanjutan (kaedah, tajuk, jenis data), teknik pengendalian ralat yang mantap (panggilan balik gagal, pemeriksaan kod status), dan integrasi dengan authenticat

See all articles