uvdsl / solid-inbox-watcher

Watch your Solid inbox.
MIT License
1 stars 1 forks source link

Cross-Pod Notifications #6

Open kaefer3000 opened 2 years ago

kaefer3000 commented 2 years ago

Posting to one Pod on solidweb.org gives me notifications in another Pod on solidweb. Is this a problem of solidweb's Pod server?

Note the watched URI in the left windows vs the URI CURL posts to in the right window. I don't know if I have other tabs open, but this also occurs in a private browser window or when trying a vanilla Chrome instead of my tab-overloaded Firefox.

https://user-images.githubusercontent.com/6708974/151677582-4b851ef8-017b-4b36-929b-f7f4cac3b099.mp4

kaefer3000 commented 2 years ago

Probably related: Double notifications

https://user-images.githubusercontent.com/6708974/151677808-47e26df0-7325-441d-a83a-2e152b229d4b.mp4

uvdsl commented 2 years ago

Yes, I was able to replicate that issue: watching uvdsl's inbox but updating a resource in ik1533's inbox via PUT.

Problem is that the Pub message from the Pod Server contains the correctly subscribed to URI. So, I can't distinguish between a correctly send notification and a falsely sent one.

I am unsure if the node-solid-server people are aware of this. I will ask them.

image

MessageEvent {
isTrusted: true, 
data: 'pub https://uvdsl.solid.aifb.kit.edu/inbox/', 
origin: 'wss://uvdsl.solid.aifb.kit.edu', lastEventId: '', 
source: null, …}
isTrusted: true
bubbles: false
cancelBubble: false
cancelable: false
composed: false
currentTarget: WebSocket {url: 'wss://uvdsl.solid.aifb.kit.edu/inbox/', 
readyState: 1, bufferedAmount: 0, onerror: null, onopen: ƒ, …}
data: "pub https://uvdsl.solid.aifb.kit.edu/inbox/"
defaultPrevented: false
eventPhase: 0
lastEventId: ""
origin: "wss://uvdsl.solid.aifb.kit.edu"
path: []
ports: []
returnValue: true
source: null
srcElement: WebSocket {url: 'wss://uvdsl.solid.aifb.kit.edu/inbox/', readyState: 1, bufferedAmount: 0, onerror: null, onopen: ƒ, …}
target: WebSocket {url: 'wss://uvdsl.solid.aifb.kit.edu/inbox/', readyState: 1, bufferedAmount: 0, onerror: null, onopen: ƒ, …}
timeStamp: 38368.69999999972
type: "message"
userActivation: null
[[Prototype]]: MessageEvent
uvdsl commented 2 years ago

Double notifications may be caused from multiple times "watching" a resource. I have yet to implement that you can sub to a resource only once.

uvdsl commented 2 years ago

Double Notification from multi-watching / multi-sub are adressed in b2168f0c87880492d2c0dca44d21dc2d2ffd04ad.

@kaefer3000 Please check if you can still replicate your double notification issue.

uvdsl commented 2 years ago

I have disabled the toast in 4af1746a71547a5f9e878e0946f08058e22550e5. Without the toast, the end-user should not notice the phantom notification.

The console logs the pub message as before, so you can see when a phantom notification arrives.