乐趣区

关于node.js: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)这个办法将音讯返回给客户端

退出移动版