访客的初始化,很多人可能会认为放到链接websocket的时候,通过ws去发送给服务端
但是这样会有一定的问题,因为如果网络不稳定或者ws链接断了,会进行不停的重连,这样会造次多次请求初始化流程
所以我会在链接websocket之前,调用一个HTTP的访客初始化接口,这样也方便进行限流,各种账户异常问题判断等逻辑
在main.js中通过原型把axios 传递进来
代码语言:javascript复制import axios from 'axios'
Vue.prototype.$axios= axios
在业务逻辑里面进行调用
代码语言:javascript复制<script>
export default {
name: 'ChatApp',
data() {
return {
visitor:{
to_id:"",
visitor_id:"",
},
}
},
methods: {
visitorLogin(){
let entId=tools.getQuery("ent_id");
let toId=tools.getQuery("to_id");
var _this=this;
this.$axios.post(this.ApiHost '/visitor_login', {
ent_id:entId,
to_id:toId,
}).then(function (response) {
var code=response.data.code;
var msg=response.data.msg;
if(code!=200){
_this.$message({
message: msg,
type: 'error'
});
return ;
}
let result=response.data.result;
_this.visitor.to_id=result.to_id;
_this.visitor.visitor_id=result.visitor_id;
}).catch(function (error) {
_this.$message({
message: error.message,
type: 'error'
});
});
},
},
mounted: function () {
this.visitorLogin();
}
}
</script>
这样就完成了发送post请求到访客初始化接口,会生成一个访客ID,前端需要把这个访客ID进行保存一下