以下是一个简化的例子,展示了如何在前端使用Vue.js和WebSocket实现语音通话功能,后端使用SpringBoot。
后端(SpringBoot):
@Controller
public class WebSocketController {
private static final Logger logger = LoggerFactory.log("WebSocket");
@MessageMapping("/voice-chat")
@SendTo("/topic/voice-chat")
public String processVoiceMessage(String message) {
// 转发收到的消息到 /topic/voice-chat
return message;
}
}
前端(Vue.js):
<template>
<div>
<button @click="startVoiceChat">开始语音通话</button>
<button @click="stopVoiceChat">结束语音通话</button>
</div>
</template>
<script>
export default {
data() {
return {
webSocket: null,
};
},
methods: {
startVoiceChat() {
this.webSocket = new WebSocket('ws://服务器地址/voice-chat');
this.webSocket.onmessage = this.handleMessage;
this.webSocket.onclose = this.handleClose;
this.webSocket.onerror = this.handleError;
},
stopVoiceChat() {
if (this.webSocket) {
this.webSocket.close();
}
},
handleMessage(message) {
// 处理接收到的消息
console.log(message.data);
},
handleClose() {
console.log('WebSocket 连接已关闭');
},
handleError() {
console.error('WebSocket 出错');
},
sendMessage(message) {
if (this.webSocket) {
this.webSocket.send(message);
}
}
}
};
</script>
确保WebSocket的URL指向正确的SpringBoot服务器地址。这个例子只是展示了基本的WebSocket连接和消息的发送接收流程,实际应用中需要考虑加密、身份验证、错误处理等多种情况。