Rumah >hujung hadapan web >View.js >Gabungan bahasa Vue.js dan Elixir untuk melaksanakan aplikasi sembang dan komunikasi masa nyata

Gabungan bahasa Vue.js dan Elixir untuk melaksanakan aplikasi sembang dan komunikasi masa nyata

WBOY
WBOYasal
2023-07-30 16:57:201025semak imbas

Gabungan bahasa Vue.js dan Elixir merealisasikan kaedah pelaksanaan aplikasi sembang dan komunikasi masa nyata

Pengenalan:
Dalam era Internet hari ini, sembang dan komunikasi masa nyata telah menjadi bahagian yang amat diperlukan dalam kehidupan dan pekerjaan orang ramai. Untuk mencapai aplikasi komunikasi masa nyata berprestasi tinggi dan boleh dipercayai, kami boleh menggabungkan bahasa Vue.js dan Elixir dan memanfaatkan kelebihan kedua-duanya. Artikel ini akan memperkenalkan cara menggunakan rangka kerja bahagian hadapan Vue.js dan rangka kerja Phoenix Elixir untuk membangunkan aplikasi sembang dan komunikasi masa nyata serta menyediakan contoh kod yang sepadan.

Bahagian Pertama: Gambaran Keseluruhan Projek
Sebelum kita bermula, mari kita fahami fungsi asas dan seni bina aplikasi sembang dan pemesejan masa nyata yang ingin kita laksanakan.

  1. Fungsi asas:
  2. Pendaftaran dan log masuk pengguna
  3. Hantar dan terima mesej sembang masa nyata
  4. Lihat sejarah sembang
  5. Seni bina:
    Kami menggunakan Vue.js sebagai rangka kerja pengguna hadapan yang bertanggungjawab dan bertanggungjawab paparan data; dan Elixir Rangka kerja Phoenix bertanggungjawab untuk mengendalikan logik belakang dan komunikasi masa nyata.

Bahagian 2: Pelaksanaan bahagian hadapan
Di bahagian hadapan, kami akan menggunakan Vue.js untuk melaksanakan interaksi pengguna dan paparan data. Pertama, kita perlu memasang Vue.js dan pemalam yang berkaitan dengannya.

  1. Pasang Vue.js:
    Buka terminal dan laksanakan arahan berikut untuk memasang Vue.js:

    $ npm install vue
  2. Cipta aplikasi Vue.js:
    Masukkan arahan berikut dalam terminal. untuk mencipta Vue baharu aplikasi js:

    $ vue create realtime-chat
  3. Tulis komponen Vue (Chat.vue):
    Buka fail Chat.vue dalam direktori src/components dan tulis kod berikut: src/components目录下的Chat.vue文件,并编写以下代码:

    <template>
      <div>
     <h1>实时聊天</h1>
     <div v-for="(message, index) in messages" :key="index">
       {{ message }}
     </div>
     <div>
       <input v-model="inputMessage" type="text" />
       <button @click="sendMessage">发送</button>
     </div>
      </div>
    </template>
    
    <script>
    export default {
      data() {
     return {
       messages: [],
       inputMessage: "",
     };
      },
      methods: {
     sendMessage() {
       // 调用后端API发送消息
     },
      },
    };
    </script>

第三部分:后端实现
在后端部分,我们将使用Elixir的Phoenix框架来处理实时通讯和后端逻辑。

  1. 安装Elixir和Phoenix:
    打开终端,执行以下命令安装Elixir和Phoenix:

    $ brew install elixir
    $ mix archive.install hex phx_new
  2. 创建Phoenix应用:
    在终端输入以下命令创建一个新的Phoenix应用:

    $ mix phx.new realtime_chat
  3. 编写Elixir模块(Chat.ex):
    打开lib/realtime_chat_web/channels目录下的chat.ex文件,并编写以下代码:

    defmodule RealtimeChatWeb.ChatChannel do
      use Phoenix.Channel
    
      def join("chat:lobby", _params, socket) do
     {:ok, socket}
      end
      
      def handle_in("new_message", %{"message" => message}, socket) do
     broadcast(socket, "new_message", %{message: message})
     {:noreply, socket}
      end
    end
  4. 更新路由(router.ex):
    打开lib/realtime_chat_web/router目录下的router.ex文件,然后添加以下代码:

    defmodule RealtimeChatWeb.Router do
      use RealtimeChatWeb, :router
    
      # ...
    
      channel "chat:*", RealtimeChatWeb.ChatChannel
    end

第四部分:前后端通讯
现在我们已经完成了前后端的基本代码。接下来,我们需要实现前后端的通讯来实现实时聊天功能。

  1. 连接后端服务器(main.js):
    打开src/main.js文件,并添加以下代码:

    import Vue from "vue";
    import App from "./App.vue";
    import Phoenix from "phoenix";
    
    Vue.config.productionTip = false;
    
    const socket = new Phoenix.Socket("/socket", {});
    socket.connect();
    
    Vue.prototype.$socket = socket;
    
    new Vue({
      render: (h) => h(App),
    }).$mount("#app");
  2. 发送和接收消息(Chat.vue):
    修改Chat.vue文件的sendMessage方法和data属性,以实现发送和接收实时消息的功能:

    methods: {
      sendMessage() {
     this.$socket.channel("chat:lobby").push("new_message", { message: this.inputMessage });
     this.inputMessage = "";
      },
    },
    created() {
      const channel = this.$socket.channel("chat:lobby");
    
      channel.on("new_message", (payload) => {
     this.messages.push(payload.message);
      });
    
      channel.join().receive("ok", (response) => {
     console.log("成功加入聊天室");
      });
    },

第五部分:运行应用
现在我们可以运行我们的实时聊天和通讯应用了。

  1. 启动Elixir服务:
    在终端输入以下命令启动Elixir服务:

    $ cd realtime_chat
    $ mix phx.server
  2. 启动Vue.js应用:
    在另一个终端窗口中,导航到Vue.js应用的根目录并执行以下命令:

    $ cd realtime-chat
    $ npm run serve
  3. 打开应用:
    在浏览器中访问http://localhost:8080rrreee

Bahagian Ketiga: Pelaksanaan Bahagian Belakang
Dalam bahagian hujung belakang, kami akan menggunakan rangka kerja Phoenix Elixir untuk mengendalikan komunikasi masa nyata dan logik hujung belakang.

🎜🎜🎜Pasang Elixir dan Phoenix: 🎜Buka terminal dan laksanakan arahan berikut untuk memasang Elixir dan Phoenix: 🎜rrreee🎜🎜🎜 Cipta aplikasi Phoenix: 🎜 Masukkan arahan berikut dalam terminal untuk mencipta aplikasi Phoenix baharu: 🎜 rrreee🎜🎜🎜 Tulis Modul Elixir (Chat.ex): 🎜Buka fail chat.ex dalam direktori lib/realtime_chat_web/channels dan tulis kod berikut: 🎜rrreee 🎜🎜🎜Kemas kini penghalaan (router .ex): 🎜Buka fail router.ex dalam direktori lib/realtime_chat_web/router, dan kemudian tambah kod berikut: 🎜rrreee 🎜🎜🎜Bahagian 4: Komunikasi bahagian hadapan dan belakang 🎜Kini kami telah melengkapkan kod asas hujung depan dan belakang. Seterusnya, kita perlu melaksanakan komunikasi hadapan dan belakang untuk melaksanakan fungsi sembang masa nyata. 🎜🎜🎜🎜Sambung ke pelayan bahagian belakang (main.js): 🎜Buka fail src/main.js dan tambahkan kod berikut: 🎜rrreee🎜🎜🎜Hantar dan terima mesej (Chat.vue ): 🎜Ubah suai kaedah sendMessage dan atribut data fail Chat.vue untuk melaksanakan fungsi menghantar dan menerima mesej masa nyata: 🎜rrreee🎜🎜🎜 Bahagian Kelima: Menjalankan Apl 🎜 Kini kami boleh menjalankan apl sembang langsung dan pemesejan kami. 🎜🎜🎜🎜Mulakan perkhidmatan Elixir: 🎜Masukkan arahan berikut dalam terminal untuk memulakan perkhidmatan Elixir: 🎜rrreee🎜🎜🎜Mulakan aplikasi Vue.js: 🎜Dalam tetingkap terminal lain, navigasi ke direktori root Vue. js dan laksanakan arahan berikut :🎜rrreee🎜🎜Buka apl:🎜Lawati http://localhost:8080 dalam penyemak imbas anda, anda sepatutnya dapat melihat antara muka sembang langsung. 🎜🎜🎜Kesimpulan: 🎜Artikel ini memperkenalkan cara menggunakan rangka kerja Phoenix Vue.js dan Elixir untuk membangunkan aplikasi sembang dan komunikasi masa nyata. Rangka kerja Vue.js bahagian hadapan merealisasikan interaksi pengguna dan paparan data, dan bahasa Elixir bahagian belakang dan rangka kerja Phoenix merealisasikan komunikasi masa nyata dan logik bahagian belakang. Saya harap artikel ini membantu dan memberi inspirasi kepada anda dengan idea untuk membangunkan lebih banyak apl pemesejan masa nyata. 🎜

Atas ialah kandungan terperinci Gabungan bahasa Vue.js dan Elixir untuk melaksanakan aplikasi sembang dan komunikasi masa nyata. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Kenyataan:
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