[{"data":1,"prerenderedAt":-1},["ShallowReactive",2],{"$fcsay7jfqmbqu":3},{"_id":4,"slug":5,"title":6,"subtitle":7,"kind":8,"cards":9,"tags":13,"categories":14,"source":15,"lang":18,"author":19,"audioState":22,"stats":23,"publishedAt":26,"renderer":22},"6aba9becca21c797c7e9a136","ssenexus-sse-ce6f8a27","SSE项目`nexus-sse`持续优化，不一样的视觉效果","关注我的公众号：【编程朝花夕拾】，可获取首发内容。 关注我的公众号：【编程朝花夕拾】，可获取首发内容。 这两天有空，就持续优化stream-nexus \u002F nexus-sse项目，并增加了websocket的集成。这一期聊聊都改了什么？ clientId 由浏览器 crypto.randomUUID() 生成，写进 URL，整条链路都靠它： 心跳应答：POST…","news",[10],{"headline":6,"body":11,"imageUrl":12,"sourceImageUrl":12},"关注我的公众号：【编程朝花夕拾】，可获取首发内容。 关注我的公众号：【编程朝花夕拾】，可获取首发内容。 这两天有空，就持续优化stream-nexus \u002F nexus-sse项目，并增加了websocket的集成。这一期聊聊都改了什么？ clientId 由浏览器 crypto.randomUUID() 生成，写进 URL，整条链路都靠它： 心跳应答：POST \u002Fsse\u002Fpong?clientId=xxx`，服务端靠它定位该给哪条连接续命 定向推送：{\"clientIds\":[\"xxx\"]}，推送给指定连接 运维台账：连接列表展示、DELETE \u002Fsse\u002Fadmin\u002Fconnections\u002F{clientId} 踢下线 最大的问题就是客户端的伪造。客户端自带 ID，等于「客户端可以声明自己是谁」。如果一个客户端使用了其他人的客户端，那么明明是两个客户端，统计数据只会显示一条。 既然刷新页面就会生成新的客户端，为什么不交给服务端维护呢，参数减少使用起来门槛就会降低。 nexus-sse项目没有去解决同源浏览器6个限制，nexus-websocket可以弥补。 nexus-websocket打算通过两个方式实现推送： 无论SSE还是Websocket其实都属于模板代码，一次搭建之后，后续直接使用，时间长了可能都记得里面都有什么东西。此项目整理了自己之前业务中碰到的问题，并在项目中得到了解决。","https:\u002F\u002Fp3-xtjj-sign.byteimg.com\u002Ftos-cn-i-73owjymdk6\u002F6cb3368fb3174511956f524244666624~tplv-73owjymdk6-jj-mark-v1:0:0:0:0:5o6Y6YeR5oqA5pyv56S-5Yy6IEAgU2ltb25LaW5n:q75.awebp?rk3s=f64ab15b&x-expires=1791163366&x-signature=kKxy4%2F1wtp%2BYb9c1AdE%2Fg%2BZ4G%2Fw%3D",[],[],{"name":16,"url":17},"Juejin","https:\u002F\u002Fjuejin.cn\u002Fpost\u002F7689818941397565486","zh",{"handle":20,"displayName":21},"spots","Spots",null,{"views":24,"likes":25,"saves":25,"shares":25,"completions":25,"opens":25,"skips":25,"depthSum":25},3,0,"2026-09-28T16:55:08.167Z"]