Server sends phantom WebSocket pub messages
还没有人认领这个 Issue。
评估
- 难度
- 4/5
- 预计耗时
- 3-5 天
- 新手友好度
- 35/100
- Issue 类型
- 缺陷
- 描述清晰度
- 基本清楚
- 活跃度
- 停滞
- 技术栈
- javascript
调研方向
从报告的发送到接收者收件箱的 POST 开始,跟踪服务器对由此产生的 pub 消息的 WebSocket 发布处理。比较发送者和接收者的收件箱状态及请求路径,然后验证只有发生 CRUD 操作变更的资源才会发出通知。
由索引模型根据 Issue 内容生成。
描述
Based on the spec (https://github.com/solid/solid-spec/blob/master/api-websockets.md#subscription), client can subscribe and the server will send WebSocket pub messages on CRUD operations. I use this for inbox monitoring - notify user about new messages in his Solid inbox. So when anybody POSTs to his inbox, solid server sends WS pub message to my application, this works fine.
However, there are "phantom" WS pub messages even when there is no user-triggered CRUD operation on the inbox. From the spec, it should be only when POST, PUT, PATCH or, DELETE happens on the source.
Now, this is hard to debug/investigate. But I can reproduce it, using my application https://whyineedtofillusername.github.io/inbox/:
- login using WebID
- send a message to any other WebID (lastly I tried sending messages between https://inbox1.inrupt.net/profile/card#me and https://inbox4.inrupt.net/profile/card#me, using Activity Streams message functionality; one in Chrome and the other user in Firefox)
- the only request the application does is this POST request (copied from Chrome, user Inbox1 sending message to user Inbox4):
POST /inbox/ HTTP/1.1
Host: inbox4.inrupt.net
Connection: keep-alive
Content-Length: 437
sec-ch-ua: "Google Chrome";v="89", "Chromium";v="89", ";Not A Brand";v="99"
Accept: application/json, text/plain, */*
sec-ch-ua-mobile: ?0
User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/89.0.4389.90 Safari/537.36
Content-Type: application/ld+json
Origin: https://whyineedtofillusername.github.io
Sec-Fetch-Site: cross-site
Sec-Fetch-Mode: cors
Sec-Fetch-Dest: empty
Referer: https://whyineedtofillusername.github.io/
Accept-Encoding: gzip, deflate, br
Accept-Language: en-US,en;q=0.9
{..} (json payload)
The request above produces WS message
pub https://inbox1.inrupt.net/inbox/

Now there shouldn't be any reason for this, but it looks like the solid server is doing some CRUD operation on the sender's inbox as well. Is this intentional? When I compare the RDF for https://inbox1.inrupt.net/inbox/ before and after sending the message, there is no change (not even the "terms:modified" has changed). So it doesn't look like there's been any CRUD operation on the source.
- 主要语言
- JavaScript
- 星标
- 1.8k
- 派生
- 308
- PR 合并指标
- 30 天内没有已合并 PR
贡献指南
从这里开始
- 先读完整个 Issue,再读项目的贡献指南。
- 在 Issue 下留言说明你要接手 —— 这能避免两个人做同样的事。
- Fork 仓库,在一个分支上完成修改。
- 提交 Pull Request,并在描述里引用这个 Issue 编号。
nodeSolidServer/node-solid-server 的其他 Issue
-
难度 1/5 1 小时以内 新手友好度 72/100
nodeSolidServer/node-solid-server#1848 · 2 条评论 · 1 个 reaction ·
-
难度 2/5 1-3 小时 新手友好度 65/100
nodeSolidServer/node-solid-server#1841 · 2 条评论 ·
-
难度 2/5 1-3 小时 新手友好度 65/100
nodeSolidServer/node-solid-server#1147 ·
-
难度 4/5 3-5 天 新手友好度 35/100
nodeSolidServer/node-solid-server#1867 ·
-
难度 5/5 一周以上 新手友好度 45/100
nodeSolidServer/node-solid-server#1853 ·
查看 nodeSolidServer/node-solid-server 的全部 Issue
相似的 Issue
-
ai-observability bug team/ai-observability
难度 2/5 1-3 小时 新手友好度 78/100
-
难度 2/5 1-3 小时 新手友好度 68/100
AllTheMods/ATM-10-L#19 ·
-
难度 2/5 1-3 小时 新手友好度 78/100
SignalK/n2k-signalk#345 ·
-
难度 2/5 1-3 小时 新手友好度 84/100
-
难度 1/5 1-3 小时 新手友好度 88/100
JuliaPluto/PlutoPlotly.jl#72 ·