HobaiRiku / blog_gittalk

博客评论仓库
0 stars 0 forks source link

About me | Hobai's Blog #5

Open HobaiRiku opened 6 years ago

HobaiRiku commented 6 years ago

https://blog.hobairiku.site/aboutme/

About me

cckowin commented 5 years ago

请问eggjs中如何调用mosca监听其他的端口,写在agent中吗

HobaiRiku commented 5 years ago

@cckowin 请问eggjs中如何调用mosca监听其他的端口,写在agent中吗

mosca是服务端进程,你说的调用指的是?

cckowin commented 5 years ago

额,说调用是指我的工程是一个egg.js后台项目,使用了mosca这个模块监听mqtt消息,我收到消息后会调用model中的一些方法插入到数据库中,我不知道我的这些代码要写在哪里,因为不是http请求啊,是写在agent中吗

HobaiRiku commented 5 years ago

你的意思是MQTT客户端吧,mosca应该不是客户端,但是你的意思我明白了,你的MQTT客户端监听的listener可以放在agent也可以放在app中,这个由你的业务逻辑决定:

  1. 当你的mqtt消息是所有app都需要单独处理,也就是所有的worker进程都处理,那就放在app内
  2. 如果是只需要处理一次,就放在agent,然后建议agent再转发给worker做具体的事情,一般都是这个情况。
cckowin commented 5 years ago

嗯,差不多是这个意思,主要共用一些代码,如果我放在app中的话,同一个mqtt消息会被多个work进程处理吗

HobaiRiku commented 5 years ago

worker进程是独立的,你把连接和监听都写在app内,所有的worker都会同时收到的,你的情况就需要把MQTT客户端连接和监听都放在agent,通过IPC通知某个worker做具体逻辑。