- 论坛徽章:
- 7
|
本帖最后由 kdkgod 于 2016-08-02 15:57 编辑
先说明一下应用场景
1,手机APP客户端 2,中心服务器 3,节点客户端
手机APP客户端跟节点客户端都没有外网ip,没办法直连。中心服务器具有外网IP,说白了中心服务器就是一个中转服务器。
手机客户端与中心服务器通信用的是http协议,手机客户端是httpclient,中心服务器是httpserver,用libevent实现的。
中心服务器与节点客户端通信用的是websocket协议,中心服务器是websocket server,节点客户端是websocket client。
现在的问题是
手机客户端发送http请求给 http server,httpserver再找到对应的websocket,将消息发送给他。理论上是可行的,但是libevent没办法做到异步处理,当收到一个http请求的时候,将数据发送给websocket client后就得等,等的话就会严重影响其他的请求。有没有好的办法处理,处理有其他的解决方案。如果用java去实现这个中心服务器是不是更容易?
流程是这样的
手机APP客户段 ==== http request ===》中心服务器 ==== websocket ====》 节点服务器
手机APP客户端《====http response==== 中心服务器《==== websocket==== 节点服务器 |
|