:IF: Friends - the messenger you'll never want to move away from

And I really need to re enable notifications :sweat_smile:

We’re connected @scottefc86

2 Likes

Haha - somehow I expected it to reduce pressure a bit when it’s deployed and running in a first very early version =D

But now people seem to want to use it and expose bugs :exploding_head:

Give me a few days to fix the bugs that immediately appeared here. The user experience will be significantly better with

  1. More reliable handshaking
  2. Notifications when someone writes a message while the website is in the background
  3. More reliable connection status info
  4. Automatic reconnecting
  5. Single session enforcement for 2 instances not to interfere with each other

It’s more or less usable right now but it’s not an exciting ux… No reason to get annoyed by friends - please don’t invest too much time into this right now. I’ll shout it from the rooftops when the issues I see atm are eliminated and I hope to cause a bit of excitement :upside_down_face:

8 Likes

got your messages but cant send anything back do you need to be connected? the send button is greyed out and cant type in the message box.

:slight_smile: cool - yeah I closed the app on my side and therefore did close the communication channel - that’s why it’s greyed out…

And yes I wanted to change that behaviour to only deactivate the send button =/

1 Like

How dare you run my big beautiful bill application and see all the bugs running around in it. :beetle: :bug: :cockroach: /jk

Good to see these apps starting to deploy a month ahead of time.

6 Likes

And sorry pals… No chance I manage to fix something in friends tonight… Family stuff and vaccine induced duties that made any programming impossible… Now I need to try to get some rest before my day job is starting

6 Likes

okay - since I’m still a bit wrecked from last night I chose to go for the low hanging fruits :smiley: …

scrolling when you have too many friends
activating chat message field even when disconnected (to prepare messages) and only deactivating sending
Notifications when new messages arrive (if the chat is not focused)


working on the session thing right now - but this destabilized the connection somehow (that’s why it’s not included in the latest release) - need to dig there why that would be the case

enforce one session - old sessions terminate themselves


handshake reliably
connection status info reliability
automatic reconnect

updated version is online and (thanks to @happybeing’s awesome history datatype :tada: ) as always available on:

dweb open a447871043968be2be1628584026cad30b824009a30eab43db3ee6dd8c0990051c27160cc8d1662da763d57c41c091f6

9 Likes

This works

willie@gagarin:~/projects/maidsafe$ export FRIENDS=a447871043968be2be1628584026cad30b824009a30eab43db3ee6dd8c0990051c27160cc8d1662da763d57c41c091f6
willie@gagarin:~/projects/maidsafe$ dweb open $FRIENDS 
DEBUG url: http://127.0.0.1:8080/dweb-open/v/a447871043968be2be1628584026cad30b824009a30eab43db3ee6dd8c0990051c27160cc8d1662da763d57c41c091f6/

and gives me

But

willie@gagarin:~/projects/maidsafe$ dweb open friends
DEBUG url: http://127.0.0.1:8080/dweb-open/v/friends/

only gives me

I can’t run anttp and dweb at the same time - both want port 8080 - how can I change one or the other to use say 8088?
I want to keep 8081 for anttp-ws-server when I finally get it working

1 Like

--port <PORT> but there may be unintended consequences - eg if anything assumes 8080 as a default for the dweb server / API.

I left that option hidden because of that and haven’t been testing this, but a couple of folk have tried it.

ScratchChat for example has 8080 hard coded although I have uploaded a version without that which you can access using the Archive address (but which isn’t in the History yet).

1 Like

Compare the address riddim gave with that in dweb with dweb list-names.

You can also get the History for a site using /dweb-info

2 Likes

Oh right I will open a pull request for correcting the address - forgot that dweb hardcoded is still the one where it’s unclear why I don’t have access anymore

Thanks for flagging @Southside

3 Likes

No need for a PR, I will update. :+1:

5 Likes

Thank you very much! You’re a hero

3 Likes

No, you are..

:rofl:

[Narrator: yes he is]

4 Likes

okay! the left tasks are mainly around connection management and reliability in connection establishment and status.

After some thinking and getting fresh air (and eating some ice) I’ve settled on a strategy for connection reliability.

Some notes about the major points influencing my path forward here:

  1. We’re already deployed - so I think there’s nothing to fear and we can proceed doing enhancements the most logical path and don’t need to rush too much (like with the external handshake server on top of the autonomi data stack).
  2. the throttling of background browser tabs is a major pain for executing handshakes when friends is not in foreground … (when you want to sleep for just 0.1s and the next loop is 10 seconds later or even more … that’s not how we can do this reliably …)
  3. debugging this with multiple chats trying to execute handshakes and the app doing some other tasks besides all that is a pain too

path forward:

  • creating a (JS/TS) library and testing it rigorously with 1:1 simple connections.
  • When we have that 1:1 connection that executes handshakes via autonomi (I think that should indeed be possible from the speeds I see with write/read speeds on my end) we can can just stick that into friends and should be in a good place.
  • additional benefit is that it then already is a library that can be used by other projects wanting to create live-data-streaming with handshake via autonomi and I don’t need to extract it later on :smiley:

friends then can just use (configured) data-channels and can query their status+connect callbacks (for incoming messages/status change/..) and doesn’t need to worry about anything related to timing, handshaking, reconnecting, …
That does sound like a significantly easier solution to me than the current where the friends main app pulls all the strings

EDIT/PS:

oh - and since then there is already something enabling data channels between 2 places without centralized servers of any form in a standardized(ish) way I probably should make a rust/python library equivalent to this because that’s a pretty cool feature.

10 Likes

just published my first npm library :smiley:

for now it’s mainly wireframe - didn’t test anything - but the README does already show the idea about how to use it :slight_smile:

goal:

  • super easy and intuitive to use together with dweb
  • possible to simply(ish) integrate with other backends too
10 Likes

i have no Friends :frowning:

3 Likes

Aw - I’ll take you for a pint once you have done the family thing and the wife has had enough…

1 Like

i only accept pint requests via friends :rofl:

b434dee7893dfa1d44fa0601121a6567a6b96c670cd91ca37c6f6b5661e123d39eacd5f0b2861c64e2b1685a20416a1e
2 Likes

You’ll get Scratchchat and like it …

2 Likes