php Socket 和 websocket 问题.

2015-05-12 15:33:35 +08:00
 lvfujun
现在在做一个项目
需求如下
用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客户端发送来的指令数据转发给安卓呢?)
是不是要用到进程间通信啊?什么消息队列之类的方法来解决?
求大牛分析一下应该如何解决呢?
2487 次点击
所在节点    问与答
4 条回复
yxaaa123
2015-05-12 16:34:38 +08:00
当然要俩服务了,两个服务之间通信,然后发送到客户端。
sujin190
2015-05-14 15:59:27 +08:00
socket_accept保存时从客户端先发一个key过来呗,相同key的就作为一对保存起来,之后转发数据就行了啊
sujin190
2015-05-14 15:59:53 +08:00
顺便说,php干这个是不是有点蛋疼
lvfujun
2015-05-15 10:35:07 +08:00
@sujin190 确实蛋疼多线程简直坑爹到没朋友.

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/190457

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX