初步接触,大致的看了文档,试着搭了简单的小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呢?
使用mvc框架来处理业务逻辑一般就是用到mvc框架的数据库等类库,可以尝试将这些类库用composer的方式集成进来(例如tp5的数据库类利用命令 composer require topthink/think-orm 集成)。
在Events中post/get去mvc处理也是很好的方法,类似将业务服务化了。如果是我的话我倾向于用Events中post/get去mvc处理的方法。
谢谢您的即使回复,
但是我存在一个问题,如果curl出去,结果MVC框架中处理数据较慢不就会存在阻塞的可能了么,
今天下午在论坛里找了一下午物联网方面的问题,
好多人都在反应这一点,如果可能的话还是希望官方能够提供更加友善的嵌入MVC的方式
望越做越好!
可以用 http://doc.workerman.net/components/workerman-http-client.html 这个异步http组件