这是一个创建于 3418 天前的主题,其中的信息可能已经有所发展或是发生改变。
现在在做一个项目
需求如下
用html5写一个控制界面控制Android 中间有一个Server端用来转发数据 Android端收到控制指令后作出相应的修改并给Server端返回一个 1 OR 0 用来表示是否成功接收到并已经作出相应的修改Server将是否成功转发给HTML5端
逻辑如下:
现实场景中有多台Android
只有一台Server
多个HTML5写的客户端
每个HTML5客户端
可以对应的控制任意一台Android但每次只能选择与一台Android通信
我的解决方案是:
HTML5端与服务器建立WebSocket长连接
Android 与服务器建立 原始Socket长连接
现在的问题是原始的Socket连接和WebSocket连接步骤不一样啊!
问题一、所以我是不是得写两个监听程序啊??????
如果我在服务器端设置两个监听程序
一个监听原始的Socket端口为9000,另一个监听WebSocket端口为9001
假如Android先与服务器端建立了长连接服务器把socket_accept保存了起来
等了一会HTML5的WebSocket也与服务器建立的长连接服务器把socket_accept保存了起来
问题二、那么HTML5客户端如何获取到已经连接的安卓客户端的信息呢?(服务器应该如何把HTML5客户端发送来的指令数据转发给安卓呢?)
是不是要用到进程间通信啊?什么消息队列之类的方法来解决?
求大牛分析一下应该如何解决呢?
第 1 条附言 · 2015-05-12 16:04:50 +08:00
不要沉啊.
4 条回复 • 2015-05-15 10:35:07 +08:00
|
|
1
yxaaa123 2015-05-12 16:34:38 +08:00
当然要俩服务了,两个服务之间通信,然后发送到客户端。
|
|
|
2
sujin190 2015-05-14 15:59:27 +08:00
socket_accept保存时从客户端先发一个key过来呗,相同key的就作为一对保存起来,之后转发数据就行了啊
|
|
|
3
sujin190 2015-05-14 15:59:53 +08:00
顺便说,php干这个是不是有点蛋疼
|