chatofpomelo 中,进入到chat页面后,是怎么把消息发送到服务器,并由chat.chatHandler.send处理的?
发布于 11 年前 作者 deerluffy 4327 次浏览 最后一次编辑是 8 年前

chatofpomelo,连接gate,收到connector的地址和端口,连接connector.entry,entry里rpc调用chat的add方法。 然后,客户端进入chat页面,这时候发送消息,没有进行pomelo.init,直接pomelo.request( chat.chatHandler.send,…),哪位帮我解释下,这个消息是怎么发送过去,服务器在哪里里对此进行处理的?如果我自己写,需要添加哪些代码或者配置?

4 回复

从 connector分配获得 响应的connector的地址和端口,然后根据端口和地址,通过pomelo.init与connector服务器建立连接,然后就可以发送消息了。 有空可以看看这篇文章https://github.com/youyudehexie/lordofpomelo/wiki 希望可以帮到你理解

但是,pomelo.request(chat.chatHandler.send,… )之前,并没有用chat服务器的地址进行pomelo.init,那么这个请求是发送到哪去了呢?是原来的connector上吗?又怎么路由到chat.chatHandler.send的呢? Thanks,那文档有点儿长,明天看,今天头快炸了。

哦,大概明白你的意思,虽然很难简单解释清楚实现原理,不过可以告诉你说,都是通过connector的来发送的,哪怕真正处理你的请求是chat服务器。

留意app.js这段代码

// app configure
app.configure('production|development', function() {
  // route configures
app.route('chat', routeUtil.chat);
// filter configures
app.filter(pomelo.timeout());
});

当请求路由的时候,凡是chat字段的都交给 routeUtil.chat 来分配。

那个ruout.chat获得了一个chat服务器的地址,然后将id给了一个回调函数,我单步跟踪了一下还是不太清楚这个回调在哪赋值的。 btw:您睡的真晚啊,程序员伤不起啊

回到顶部