google calendar 不同网页端怎么做到同步的

2020 年 11 月 10 日
 henryliufeng

打开两个 google calendar 网页端,我创建一个事件,另一个网页端很快就同步过来了

看了下,没有建立 websocket 链接, 求大佬指点,是怎么做到接近实时同步的

4019 次点击
所在节点    Web Dev
21 条回复
zarte
2020 年 11 月 10 日
不是 websocket 就是 ajax 了要不然就是浏览器的 socket
howellz
2020 年 11 月 10 日
@zarte 请问浏览器的 socket 是什么东东啊?
shyling
2020 年 11 月 10 日
打开页面。。然后 chrome 设置为 offine 。看什么在联网,就知道咯
henryliufeng
2020 年 11 月 10 日
@zarte 但是没有看到 ajax 请求发出去啊
xiyuesaves
2020 年 11 月 10 日
可以用 BroadcastChannel 来实现
[MDN]( https://developer.mozilla.org/zh-CN/docs/Web/API/Broadcast_Channel_API)

或者 localStorage(代码来自 [segmentfault]( https://segmentfault.com/a/1190000016927268))
```
// 本窗口的设值代码
localStorage.setItem('aaa', (Math.random()*10).toString())

// 其他窗口监听 storage 事件
window.addEventListener("storage", function (e) {
console.log(e)
console.log(e.newValue)
})
```
wikinee
2020 年 11 月 10 日
你们想的是不是太简单了。。。
henryliufeng
2020 年 11 月 10 日
@xiyuesaves 不同主机这样子不行的吧
wednesdayco
2020 年 11 月 10 日
感觉就是个轮询呢……
wph95
2020 年 11 月 10 日
chrome network debug 了解一下
里面有个请求
xxx.google.com/v1/acknowledgments
https://calendar.google.com/calendar/u/1/sync.sync

ack 那东西 参考 https://cloud.google.com/pubsub/docs/reference/rest/v1/projects.subscriptions/acknowledge
然后你就可以去看看 pubsub google 是怎么搞的了
LnTrx
2020 年 11 月 10 日
FCM ?
HeyWeGo
2020 年 11 月 10 日
第一次看这个效果还是挺新奇的,链接里用的是 web worker
HeyWeGo
2020 年 11 月 10 日
链接我发不了,是个推特链接
rioshikelong121
2020 年 11 月 10 日
你用两个浏览器分别打开页面看看能不能很快同步。不能的话可能就是前端文档之间通信,可以的话就是走服务端。
HeyWeGo
2020 年 11 月 10 日
v 站的发帖机制太迷了!
sm.ms/image/oImM5YdLwWAFnJ8
Brooooooklyn
2020 年 11 月 10 日
Fetch + Stream API
AkideLiu
2020 年 11 月 10 日
我记得上次看到差不多的问题是,Google 的 live us election 为啥不是 websocket
mascteen
2020 年 11 月 10 日
这么容易实现就不叫谷哥了吧?
mascteen
2020 年 11 月 10 日
肯定是有数据库同步,分布的
henryliufeng
2020 年 11 月 10 日
@wph95 感谢,感觉你说的是对的
henryliufeng
2020 年 11 月 10 日
@HeyWeGo 你发的这个也挺有意思,但是只是对一个浏览器上的不同 Tab 跨机是不行的

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

https://study.congcong.us/t/723504

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

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

© 2021 V2EX