js向服务器发送消息,pinus 前端服务器向后端服务器发送消息

本文介绍了Pinus服务器框架下,前端服务器如何向后端发送消息的过程。客户端连接服务器时,通过socket对象注册事件,当触发'message'事件时,经过解码和验证过程,最终调用handleMessage方法将消息传递给后端。文章重点关注了消息从客户端到服务器的流转,而未深入探讨不同类之间的关系。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

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)这个方法将消息返回给客户端

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值