pinus 前端服务器向后端服务器发送消息
Posted lyh1091106900
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了pinus 前端服务器向后端服务器发送消息相关的知识,希望对你有一定的参考价值。
pinus的项目框架和pomelo是一样的,感谢pinus的项目组,这个服务器框架得到了发展。不同类之间的关系复杂,这篇文章没有要梳理其中的关系的内容,只是针对前端服务器向后端服务器发送消息的过程参考相关代码做个介绍。
客户端向服务器发送消息
客户端连接服务器框架的时候会生成一个socket对象,socket对象注册一些事件,这部分代码在pinus/common/components/connector.ts文件里。客户端向服务器发送会触发messege
事件。以下是messege
的响应
// new message
socket.on(\'message\', (msg) => {
let dmsg = msg;
// if (this.useAsyncCoder) {
// return this.handleMessageAsync(msg, session, socket);
// }
if (this.decode) {
dmsg = this.decode(msg);
} else if (this.connector.decode) {
dmsg = this.connector.decode(msg);
// Perhaps protobuf decoder error can be captured here.
// if (dmsg && dmsg.body === null) {
// // protobuf decode error
// logger.error(\'fail to decode the msg body received from client. msg:\', dmsg);
// return;
// }
}
if (!dmsg) {
// discard invalid message
return;
}
// use rsa crypto
if (this.useCrypto) {
let verified = this.verifyMessage(session, dmsg);
if (!verified) {
logger.error(\'fail to verify the data received from client.\');
return;
}
}
this.handleMessage(session, dmsg);
}); // on message end
方法调用this.server.globalHandle
这个方法向后端服务器发送消息
最后调用 this.handleMessage(session, dmsg)
这个方法将消息返回给客户端
以上是关于pinus 前端服务器向后端服务器发送消息的主要内容,如果未能解决你的问题,请参考以下文章