关于 PHP 与 iOS 的 Socket 通讯方式

2018-01-23 14:53:48 +08:00
 90safe

目前在做一个需求:HD 版的 APP 生成一个二维码,Mobile 版已经登陆过了,扫描二维码,将 Token 传输给 HD 版,然后 HD 相当于扫码登陆成功,即可用 Token 获取用户数据。

我的思路是 HD 生成二维码的时候与服务器建立连接,Mobile 扫描到二维码以后,也与服务器建立连接,然后将 Token 传输过去,大概是这样。

那么重点来了,我只是一个 PHP 后端开发,客户端是 iOS/Android 来做,服务器的话,我得咋配置呢?我以前玩 socket 仅限于 nc/lcx,难道得上 Swoole ?

2715 次点击
所在节点    程序员
16 条回复
sszxcss
2018-01-23 15:01:48 +08:00
上 swoole,怕啥
nilai
2018-01-23 15:05:53 +08:00
为嘛要用 Socket ? 这功能需求 HTTP 不能实现 ???
90safe
2018-01-23 15:09:45 +08:00
@nilai HTTP 方式需要在生成二维码以后,无限请求服务器,1-3s 请求一次,才能实现,这样如果多个 APP 同时打开二维码页面,就大并发了呀
server
2018-01-23 16:29:30 +08:00
轮询不好吗
ljmready
2018-01-23 16:33:37 +08:00
http 轮询比 websocket 好吧
ycz0926
2018-01-23 17:07:36 +08:00
workerman
jadec0der
2018-01-23 18:25:14 +08:00
3000 个 App 登录,是建立 3000 个长链接并发大,还是 3 秒钟轮询一次,每秒钟 1000 个 HTTP 请求并发大?
cevincheung
2018-01-23 18:30:59 +08:00
为什么觉得 http 请求这个场景不叫并发。
每次请求耗时多久?有超过 3 秒?(服务端耗时)
每单位时间(请求耗时)中同时多少请求并存?

这个量不上百万基本都需要考虑的吧。
cevincheung
2018-01-23 18:31:35 +08:00
补:不需要考虑并发负载
fcten
2018-01-23 18:31:35 +08:00
websocket 也行,长轮询也行。并发是必然的,有多少用户在登录就会有多少并发。又想要实时又不要并发哪有这么好的事……
chinvo
2018-01-23 18:55:53 +08:00
安心用轮询,websocket 和长链接更吃并发。而且这点数据量( token 校验)用 websocket 性价比低。
coderfox
2018-01-23 19:01:22 +08:00
为什么不直接把 token 存二维码里?
coderfox
2018-01-23 19:03:50 +08:00
对不起,是我理解错了。

就用轮询呗,长连接消耗不见得小。
90safe
2018-01-23 20:08:56 +08:00
@cevincheung @chinvo @coderfox @jadec0der @server @ljmready @fcten

原因是因为这个 /t/424498,mysql 放在 win 系统,所以想减少查询跟写入
jadec0der
2018-01-23 20:12:50 +08:00
@90safe 那我建议你引入一个 redis,只需要很小的内存就够用。我认为在 Server 上搞个缓存比在 C/S 之间增加一个协议的成本低多了
90safe
2018-01-24 08:33:28 +08:00
@jadec0der 谢谢!

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

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

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

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

© 2021 V2EX