这个功能之前是在知乎上有人在询问后台的实现逻辑,然后才知道的。其实对微信的各种关注,实在是不想沾惹。
但是这个功能很有意思,当我关注了你,那么就可以在你的店里上wifi 。如果取消则立刻不能上网。
这里说下我的思路。
我们需要一个后台程序,这个后台程序的作用就是接收微信发来的消息(微信名字叫XXX/机器号名字为XXX/序列号名字为XX)的用户刚才关注了您。这时我们就会把这个用户的名单,添加到我们后台的一张表中。这张表用来存储这些用户。当该用户取消关注的时候,则微信从后台发来信息,然后我们再从表中删除这个用户(可以使逻辑删除)。与此同时当我们 改动数据库成功时,对路由器中可以使用wifi 的机器序列号,mac 号 进行操作。这样商家就可以在无密码的情况下,根据关注或不关注而觉定消费者是否可以上网。这个有点observer 的思路。其中通过mac 地址在无密码的情况下决定谁可以上网的方式,最早是听中超跟我说的。
他家的无线网没有密码,但是他已经提前设置了wifi 中可以连接的mac地址(自己家人的)这样有人想蹭网的时候,就会出现,诶 怎么连不上去呢,诶 为什么连不上去呢 是不是我手机坏了的情况 (万恶的家伙)
另外一种就是心跳机制,之所以有采用这种主动询问的机制的必要,我觉得对于微信这种大数据量的软件来说,如果每一个商家都及时的发送有新人关注,有人取消关注,对于整体的性能耗费是巨大的,而且很多时候这些消息可以说是浪费了(可能用户这两天停(zhuan)业(rang)装(dao)修(bi)呢)。通过心跳机制,定时的获取当前关注本店的所有用户的 id 号。然后对于自己的存储表,该删的删,该新增的新增。
这里可能会出现换卡或者换手机的问题的情况,那么可以通过重新登录微信(我想微信的后台应该会重新扫描当前登录设备的),然后更新微信侧的存储信息,从而更新本次的数据。