为了方便信息的交流,在结合动态服务网页(JSP)和MYSQL 技术之下开发了这个快捷、界面友好的在线客服系统。系统使用动态服务网页(JSP)技术建设的骨干框架,使用MYSQL制作系统的数据库,实现了一个功能相对齐全的在线客服系统。
本系统是一个基于Internet,采用B2C(Business to Consumers) 模式,并根据现有的在线客服系统的现状而设计开发的电子商务平台。它不但可以扩大商家的规模和市场影响力,而且可以减少企业的经营成本,提高工作效率。
本系统首先介绍了在线客服系统的研究背景和意义,然后详细说明了开发过程及其相关技术,通过运用Java、JSP、数据库、软件工程等技术,提出了在线客服系统的解决方案,并从用户权限的不同将整个系统分为聊天管理、系统管理等功能。经过功能分析后首先建立数据库结构,根据功能的需求尽量完善功能代码。最后是对测试结果的描述和总结。
在线客服系统主要包括前台部分和后台部分,前台部分主要包括客服人员的登录以及在线用户提出问题的解答,在线用户能够通过浏览器向客服人员提出问题。后台部分主要由系统管理员对在线用户,和客服人员进行管理,注册客服人员帐号。具体要求如下:
1、在线用户通过网站链接进入在线客服系统,由系统获取ip地址进行判断,如果该ip地址已经注册则直接进入系统进行相关咨询。否则由系统在后台进行注册,注册完成后进入用户咨询界面。
2、用户进入系统后,出现类似msn聊天界面,用户可向客服提出相关咨询问题。
3、在线客服人员接收并回答在线用户提出的问题。通过接收消息,反馈用户提出的各类问题。
4、客服人员操作界面类似与msn的好友管理界面,回复消息界面类似与msn的聊天界面。
5、客服人员好友管理中可以看到用户ip及其对应所在地,客服人员对于恶意用户可以踢出系统,并禁止其1小时内再次登录,客服人员可以接收离线消息。
6、消息统一保存在服务器数据库中,系统管理员可以根据日期统一导出和并进行数据统计。
7、系统管理员可以注册客服人员,并对客服人员进行相关授权。
8、系统管理员可以统计每天在线用户数量,以及提问数量,可以对客服人员回答数进行统计并产生图表。
<template>
<div class='chat-container'>
<div class='messages'>
<div v-for='message in messages' :key='message.id' class='message'>
<div v-if='message.from === 'user'' class='user-message'>
<span>{{ message.text }}</span>
</div>
<div v-else class='agent-message'>
<span>{{ message.text }}</span>
</div>
</div>
</div>
<form class='message-input' @submit.prevent='sendMessage'>
<input v-model='newMessage' type='text' placeholder='请输入消息' />
<button type='submit'>发送</button>
</form>
</div>
</template>
<script>
import VueNativeSock from 'vue-native-websocket';
export default {
data() {
return {
messages: [],
newMessage: ''
};
},
created() {
// 创建WebSocket连接,连接到指定的URL
Vue.use(VueNativeSock, 'ws://localhost:8080/ws', {
reconnection: true,
format: 'json',
store: this.$store
});
// 监听WebSocket事件
this.$options.sockets.onmessage = (event) => {
const message = JSON.parse(event.data);
this.messages.push(message);
};
},
methods: {
sendMessage() {
if (this.newMessage.trim() !== '') {
const message = {
id: this.messages.length + 1,
from: 'user',
text: this.newMessage.trim()
};
// 发送消息到WebSocket服务端
this.$socket.sendObj(message);
this.messages.push(message);
this.newMessage = '';
}
}
}
};
</script>
<style>
.chat-container {
/* 样式代码 */
}
.messages {
/* 样式代码 */
}
.message {
/* 样式代码 */
}
.user-message {
/* 样式代码 */
}
.agent-message {
/* 样式代码 */
}
.message-input {
/* 样式代码 */
}
</style>
使用VueNativeSock插件创建了WebSocket连接,并通过onmessage
事件监听WebSocket服务端发送的消息。当用户在输入框中输入新消息后,我们可以通过调用$socket.sendObj()
方法将其发送到WebSocket服务端。服务端接收到消息后,可以将其发送给其他连接的客户端。
使用Java编写WebSocket服务器可以使用Java的WebSocket API,以下是一个用Java编写:
```java
import javax.websocket.*;
import javax.websocket.server.ServerEndpoint;
import java.io.IOException;
@ServerEndpoint('/websocket')
public class WebSocketServer {
@OnOpen
public void onOpen(Session session) {
System.out.println('WebSocket连接已建立');
}
@OnMessage
public void onMessage(String message, Session session) throws IOException {
System.out.println('收到客户端的消息:' + message);
// 简单示例,将收到的消息发送给所有连接的客户端
for (Session client : session.getOpenSessions()) {
client.getBasicRemote().sendText(message);
}
}
@OnClose
public void onClose(Session session) {
System.out.println('WebSocket连接已关闭');
}
}
```
在这,使用了`javax.websocket`包来创建WebSocket服务器。通过`@ServerEndpoint('/websocket')`注解将`WebSocketServer`类标记为WebSocket服务器,并指定了客户端连接的URL路径。
当有客户端建立WebSocket连接时,`@OnOpen`注解的方法`onOpen()`将会被调用。
接下来,当客户端发送消息时,`@OnMessage`注解的方法`onMessage()`将会被调用。在这,接收到消息后,通过遍历所有连接的客户端,并使用`getBasicRemote().sendText()`方法将消息发送给每个客户端。
最后,当WebSocket连接关闭时,`@OnClose`注解的方法`onClose()`将会被调用。
要启动这个WebSocket服务器,你可以使用Java的Web容器(例如Tomcat)将这个类打包成war文件或直接在IDE中运行。