Node.js创建一个简单的WebSocket接口,Vue中连接接口,实现通信交互

科技创新工坊 2024-10-20T10:00:17+08:00
0 0 174

引言

随着互联网技术的发展,即时通讯成为了人们日常生活和工作中必不可少的一部分。WebSocket作为一种实时通信协议,它的优势在于能够实现全双工通信,使得服务器主动向客户端推送消息成为可能。本文将介绍如何使用Node.js创建一个简单的WebSocket接口,并通过Vue与其进行连接,实现通信交互。

准备工作

1. 安装Node.js

在本地开发环境中安装Node.js,可以到官网上下载安装包,根据提示进行安装。

2. 创建Vue项目

打开命令行工具,在合适的目录下执行以下命令来创建一个新的Vue项目:

vue create my-websocket-app

根据提示选择需要的配置,等待项目创建完成。

3. 安装相关依赖

进入Vue项目目录,执行以下命令安装相关依赖:

cd my-websocket-app
npm install vue-native-websocket --save

该依赖将帮助我们在Vue中连接WebSocket接口。

创建WebSocket接口

创建一个名为server.js的文件,并在文件中编写以下代码:

const WebSocket = require('ws');

// 创建WebSocket服务器
const wss = new WebSocket.Server({ port: 3000 });

// 当有客户端连接成功时执行
wss.on('connection', (ws) => {
  console.log('Client connected');

  // 监听客户端发送的消息
  ws.on('message', (message) => {
    console.log(`Received message: ${message}`);

    // 向客户端发送消息
    ws.send(`Server received message: ${message}`);
  });

  // 当客户端断开连接时执行
  ws.on('close', () => {
    console.log('Client disconnected');
  });
});

以上代码创建了一个WebSocket服务器,监听在本地的3000端口。当有客户端连接成功时,服务器会输出Client connected,并监听客户端发送的消息。当客户端断开连接时,服务器会输出Client disconnected

在Vue中连接WebSocket接口

打开Vue项目的入口文件src/main.js,修改代码如下:

import Vue from 'vue'
import App from './App.vue'
import VueNativeSock from 'vue-native-websocket'

// 连接WebSocket接口
Vue.use(VueNativeSock, 'ws://localhost:3000', {
  connectManually: true
})

Vue.config.productionTip = false

new Vue({
  render: h => h(App),
}).$mount('#app')

以上代码通过Vue.use()方法连接了WebSocket接口,其中'ws://localhost:3000'表示需要连接的服务端地址和端口。

实现通信交互

编辑Vue组件src/App.vue,修改代码如下:

<template>
  <div class="app">
    <h1>{{ message }}</h1>
    <input v-model="inputMessage" @keyup.enter="sendMessage" placeholder="请输入消息" />
  </div>
</template>

<script>
export default {
  name: 'App',
  data() {
    return {
      message: '',
      inputMessage: ''
    }
  },
  methods: {
    sendMessage() {
      // 发送消息
      this.$socket.send(this.inputMessage)
      this.inputMessage = ''
    }
  },
  mounted() {
    // 接收消息
    this.$socket.onmessage = (event) => {
      this.message = event.data
    }
  }
}
</script>

<style>
.app {
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  height: 100vh;
  font-family: 'Arial', sans-serif;
}

h1 {
  margin-bottom: 20px;
  font-size: 24px;
  font-weight: bold;
  color: #333;
}

input {
  padding: 10px;
  font-size: 16px;
}
</style>

以上代码展示了一个简单的页面,包含一个消息展示区和一个输入框用于发送消息。当用户输入消息并按下回车键时,调用sendMessage方法向服务器发送消息。收到消息后,页面会更新展示区的内容。

运行项目

在Vue项目所在目录下,执行以下命令运行项目:

npm run serve

打开浏览器,访问http://localhost:8080,即可看到页面加载成功。

总结

通过Node.js创建WebSocket接口,我们可以方便地实现服务器与客户端之间的实时通信。结合Vue框架进行开发,可以更便捷地管理和处理通信交互。希望本文对你了解WebSocket的实现和使用有所帮助。

相似文章

    评论 (0)