GatewayWorker与MVC框架结合,进行websoket通讯并将数据存到数据库是否只能Events.php中操作mysql类实现

wolegequ1993

初步接触,大致的看了文档,试着搭了简单的小demo,但是存在一些小问题:
 
背景:做一个类似共享单车的项目     单车与服务器进行soket通讯(无法发送ajax请求),   手机端APP与服务器进行长连接,根据官方推荐因为长连接的存在使用了GatewayWorker
 
1.单车只能服务器进行soket通讯,触发了Events.php中的onMessage事件,  但是因为GatewayWorker与MVC是独立部署互不干扰的,这时候我如果想使用MVC框架中已经定义好的一些方法处理数据化,并存储到数据库应该怎么做?
 
2.其实上个问题可以通过,在Events.php中封装一个post/get请求方法发送到MVC中处理来解决,但是不知道官方有没有对这个问题更好的解决方式
 
3.其实最初的时候在框架中集成的是wokerman,集成wokerman就规避了这个问题,但是因为有APP进行长连接的问题所以按照推荐使用了GatewayWorker,那么像这种即需要长连接又需要在MVC中监听soket发送数据的情况官方 推荐使用wokerman还是GatewayWorker呢?

4287 1 0
1个回答

walkor

使用mvc框架来处理业务逻辑一般就是用到mvc框架的数据库等类库,可以尝试将这些类库用composer的方式集成进来(例如tp5的数据库类利用命令 composer require topthink/think-orm 集成)。
 
在Events中post/get去mvc处理也是很好的方法,类似将业务服务化了。如果是我的话我倾向于用Events中post/get去mvc处理的方法。

  • wolegequ1993 2018-11-06

    谢谢您的即使回复,
    但是我存在一个问题,如果curl出去,结果MVC框架中处理数据较慢不就会存在阻塞的可能了么,
    今天下午在论坛里找了一下午物联网方面的问题,
    好多人都在反应这一点,如果可能的话还是希望官方能够提供更加友善的嵌入MVC的方式
    望越做越好!

年代过于久远,无法发表回答
🔝