今天面试,遇到个场景问题,说两个人去吃饭,二维码扫一扫点单,他们俩一同扫出一个菜单页面,两个人的点单行为双方都能看到,并且相互影响,点单结束后一个人确认,两个人的菜单同时合并提交,请问,以上用了哪些技术。
有人能知道这道题的答案吗,刚工作一年的菜鸟,今天被问的一脸懵逼。
今天面试,遇到个场景问题,说两个人去吃饭,二维码扫一扫点单,他们俩一同扫出一个菜单页面,两个人的点单行为双方都能看到,并且相互影响,点单结束后一个人确认,两个人的菜单同时合并提交,请问,以上用了哪些技术。
有人能知道这道题的答案吗,刚工作一年的菜鸟,今天被问的一脸懵逼。
ajax+php
使用过二维火,
一张桌子一个id,二维码就是一个连接,比如http://www.aaa.com/?id=1
扫描二维码就相当于打开一个网页。
点击一个菜品加入购物车,就是用ajax提交菜品id,
当时使用的时候就测试过,我把一个菜品加入购物车,另一个扫描的朋友不会显示菜品已加入购物车,除非刷新页面,
所以应该没有用到websocket,消息队列这种高级的东西。
只是刷新页面的时候后端读取购物车菜品,并显示页面而已。
所以二维码点单看上去很高级,其实很简单
请问,以上用了哪些技术
这里即没有限定是浏览器环境,也没有限定是 HTTP 协议。
所以,最简单的处理方式,就是客户端直接创建 2 个连接,以 RPC 方式,一个连接主动,一个连接被动。
没有任何“技术”,最普通,最基本的网络编程知识。
这种题目没有标准答案!只要能够实现这种效果的就可以。
比如说websocket。
1.扫码的行为就是进入一个房间号,两个人之间的就是基于ws交互,数据可以存储在redis中,最后合并之后提交,存数据库操作。
也可以使用轮询
2.也可以是轮询操作,也是可以实现这种效果,只不过websocket的时效性更好。
队列也是一样的。
1 回答4.1k 阅读✓ 已解决
3 回答1.8k 阅读✓ 已解决
2 回答2.2k 阅读✓ 已解决
4 回答2.2k 阅读
3 回答2.1k 阅读
2 回答977 阅读✓ 已解决
1 回答1.4k 阅读✓ 已解决
一种思路:
使用websocket进行通信,可以类比聊天室。
一个二维码(或者一个桌的二维码)可以通过参数标识识别为同一个房间,两个人都在点单,每个人点单都会互相触发消息,将点单结果罗列。每个人都可以对点单的内容进行各种操作(操作同样能够通过websocket消息触发)。
这样就是实时的,最后一个人确认下单的列表,提交即可。(这个过程会有一些一些细节,比如一个人点了一个菜,这个人就不能再点)。
如果不用websocket,可以使用
ajax + SSE
一样的效果。这种问题问的很开放,用到了哪些技术,随便扯就行。