From 0d94acb8fbb105e56f645089c98e735368d08671 Mon Sep 17 00:00:00 2001 From: Karol Konkol Date: Mon, 22 Sep 2025 15:56:39 +0200 Subject: [PATCH 1/3] Remove stream notifications and add streamer notifications --- doc/docs.md | 22 ++++++------ fishjam/server_notifications.proto | 26 +++++++------- .../lib/fishjam/server_notifications.pb.ex | 34 ++++++++++--------- fishjam_protos/mix.lock | 2 +- 4 files changed, 44 insertions(+), 40 deletions(-) diff --git a/doc/docs.md b/doc/docs.md index 80d0940..74b3d56 100644 --- a/doc/docs.md +++ b/doc/docs.md @@ -98,8 +98,8 @@ - [ServerMessage.RoomCrashed](#fishjam-ServerMessage-RoomCrashed) - [ServerMessage.RoomCreated](#fishjam-ServerMessage-RoomCreated) - [ServerMessage.RoomDeleted](#fishjam-ServerMessage-RoomDeleted) - - [ServerMessage.StreamConnected](#fishjam-ServerMessage-StreamConnected) - - [ServerMessage.StreamDisconnected](#fishjam-ServerMessage-StreamDisconnected) + - [ServerMessage.StreamerConnected](#fishjam-ServerMessage-StreamerConnected) + - [ServerMessage.StreamerDisconnected](#fishjam-ServerMessage-StreamerDisconnected) - [ServerMessage.SubscribeRequest](#fishjam-ServerMessage-SubscribeRequest) - [ServerMessage.SubscribeResponse](#fishjam-ServerMessage-SubscribeResponse) - [ServerMessage.TrackAdded](#fishjam-ServerMessage-TrackAdded) @@ -1247,10 +1247,10 @@ Defines any type of message passed between FJ and server peer | track_metadata_updated | [ServerMessage.TrackMetadataUpdated](#fishjam-ServerMessage-TrackMetadataUpdated) | | | | peer_added | [ServerMessage.PeerAdded](#fishjam-ServerMessage-PeerAdded) | | | | peer_deleted | [ServerMessage.PeerDeleted](#fishjam-ServerMessage-PeerDeleted) | | | -| stream_connected | [ServerMessage.StreamConnected](#fishjam-ServerMessage-StreamConnected) | | | -| stream_disconnected | [ServerMessage.StreamDisconnected](#fishjam-ServerMessage-StreamDisconnected) | | | | viewer_connected | [ServerMessage.ViewerConnected](#fishjam-ServerMessage-ViewerConnected) | | | | viewer_disconnected | [ServerMessage.ViewerDisconnected](#fishjam-ServerMessage-ViewerDisconnected) | | | +| streamer_connected | [ServerMessage.StreamerConnected](#fishjam-ServerMessage-StreamerConnected) | | | +| streamer_disconnected | [ServerMessage.StreamerDisconnected](#fishjam-ServerMessage-StreamerDisconnected) | | | @@ -1493,30 +1493,32 @@ Notification sent when a room is deleted - + + +### ServerMessage.StreamerConnected -### ServerMessage.StreamConnected -Notification sent when streamer successfully connects | Field | Type | Label | Description | | ----- | ---- | ----- | ----------- | | stream_id | [string](#string) | | | +| streamer_id | [string](#string) | | | + + - +### ServerMessage.StreamerDisconnected -### ServerMessage.StreamDisconnected -Notification sent when streamer disconnects | Field | Type | Label | Description | | ----- | ---- | ----- | ----------- | | stream_id | [string](#string) | | | +| streamer_id | [string](#string) | | | diff --git a/fishjam/server_notifications.proto b/fishjam/server_notifications.proto index 6b6c1d9..c481da5 100644 --- a/fishjam/server_notifications.proto +++ b/fishjam/server_notifications.proto @@ -148,16 +148,6 @@ message ServerMessage { notifications.Track track = 4; } - // Notification sent when streamer successfully connects - message StreamConnected { - string stream_id = 1; - } - - // Notification sent when streamer disconnects - message StreamDisconnected { - string stream_id = 1; - } - // Notification sent when viewer successfully connects message ViewerConnected { string stream_id = 1; @@ -170,7 +160,17 @@ message ServerMessage { string viewer_id = 2; } - reserved 12; + message StreamerConnected { + string stream_id = 1; + string streamer_id = 2; + } + + message StreamerDisconnected { + string stream_id = 1; + string streamer_id = 2; + } + + reserved 12, 22, 23; oneof content { RoomCrashed room_crashed = 1; @@ -193,9 +193,9 @@ message ServerMessage { TrackMetadataUpdated track_metadata_updated = 19; PeerAdded peer_added = 20; PeerDeleted peer_deleted = 21; - StreamConnected stream_connected = 22; - StreamDisconnected stream_disconnected = 23; ViewerConnected viewer_connected = 24; ViewerDisconnected viewer_disconnected = 25; + StreamerConnected streamer_connected = 26; + StreamerDisconnected streamer_disconnected = 27; } } diff --git a/fishjam_protos/lib/fishjam/server_notifications.pb.ex b/fishjam_protos/lib/fishjam/server_notifications.pb.ex index 18617d5..059b34c 100644 --- a/fishjam_protos/lib/fishjam/server_notifications.pb.ex +++ b/fishjam_protos/lib/fishjam/server_notifications.pb.ex @@ -206,38 +206,40 @@ defmodule Fishjam.ServerMessage.TrackMetadataUpdated do field :track, 4, type: Fishjam.Notifications.Track end -defmodule Fishjam.ServerMessage.StreamConnected do +defmodule Fishjam.ServerMessage.ViewerConnected do @moduledoc false use Protobuf, protoc_gen_elixir_version: "0.15.0", syntax: :proto3 field :stream_id, 1, type: :string, json_name: "streamId" + field :viewer_id, 2, type: :string, json_name: "viewerId" end -defmodule Fishjam.ServerMessage.StreamDisconnected do +defmodule Fishjam.ServerMessage.ViewerDisconnected do @moduledoc false use Protobuf, protoc_gen_elixir_version: "0.15.0", syntax: :proto3 field :stream_id, 1, type: :string, json_name: "streamId" + field :viewer_id, 2, type: :string, json_name: "viewerId" end -defmodule Fishjam.ServerMessage.ViewerConnected do +defmodule Fishjam.ServerMessage.StreamerConnected do @moduledoc false use Protobuf, protoc_gen_elixir_version: "0.15.0", syntax: :proto3 field :stream_id, 1, type: :string, json_name: "streamId" - field :viewer_id, 2, type: :string, json_name: "viewerId" + field :streamer_id, 2, type: :string, json_name: "streamerId" end -defmodule Fishjam.ServerMessage.ViewerDisconnected do +defmodule Fishjam.ServerMessage.StreamerDisconnected do @moduledoc false use Protobuf, protoc_gen_elixir_version: "0.15.0", syntax: :proto3 field :stream_id, 1, type: :string, json_name: "streamId" - field :viewer_id, 2, type: :string, json_name: "viewerId" + field :streamer_id, 2, type: :string, json_name: "streamerId" end defmodule Fishjam.ServerMessage do @@ -341,16 +343,6 @@ defmodule Fishjam.ServerMessage do json_name: "peerDeleted", oneof: 0 - field :stream_connected, 22, - type: Fishjam.ServerMessage.StreamConnected, - json_name: "streamConnected", - oneof: 0 - - field :stream_disconnected, 23, - type: Fishjam.ServerMessage.StreamDisconnected, - json_name: "streamDisconnected", - oneof: 0 - field :viewer_connected, 24, type: Fishjam.ServerMessage.ViewerConnected, json_name: "viewerConnected", @@ -360,4 +352,14 @@ defmodule Fishjam.ServerMessage do type: Fishjam.ServerMessage.ViewerDisconnected, json_name: "viewerDisconnected", oneof: 0 + + field :streamer_connected, 26, + type: Fishjam.ServerMessage.StreamerConnected, + json_name: "streamerConnected", + oneof: 0 + + field :streamer_disconnected, 27, + type: Fishjam.ServerMessage.StreamerDisconnected, + json_name: "streamerDisconnected", + oneof: 0 end diff --git a/fishjam_protos/mix.lock b/fishjam_protos/mix.lock index b7bd61a..7cc313a 100644 --- a/fishjam_protos/mix.lock +++ b/fishjam_protos/mix.lock @@ -1,6 +1,6 @@ %{ "earmark_parser": {:hex, :earmark_parser, "1.4.44", "f20830dd6b5c77afe2b063777ddbbff09f9759396500cdbe7523efd58d7a339c", [:mix], [], "hexpm", "4778ac752b4701a5599215f7030989c989ffdc4f6df457c5f36938cc2d2a2750"}, - "ex_doc": {:hex, :ex_doc, "0.38.2", "504d25eef296b4dec3b8e33e810bc8b5344d565998cd83914ffe1b8503737c02", [:mix], [{:earmark_parser, "~> 1.4.44", [hex: :earmark_parser, repo: "hexpm", optional: false]}, {:makeup_c, ">= 0.1.0", [hex: :makeup_c, repo: "hexpm", optional: true]}, {:makeup_elixir, "~> 0.14 or ~> 1.0", [hex: :makeup_elixir, repo: "hexpm", optional: false]}, {:makeup_erlang, "~> 0.1 or ~> 1.0", [hex: :makeup_erlang, repo: "hexpm", optional: false]}, {:makeup_html, ">= 0.1.0", [hex: :makeup_html, repo: "hexpm", optional: true]}], "hexpm", "732f2d972e42c116a70802f9898c51b54916e542cc50968ac6980512ec90f42b"}, + "ex_doc": {:hex, :ex_doc, "0.38.4", "ab48dff7a8af84226bf23baddcdda329f467255d924380a0cf0cee97bb9a9ede", [:mix], [{:earmark_parser, "~> 1.4.44", [hex: :earmark_parser, repo: "hexpm", optional: false]}, {:makeup_c, ">= 0.1.0", [hex: :makeup_c, repo: "hexpm", optional: true]}, {:makeup_elixir, "~> 0.14 or ~> 1.0", [hex: :makeup_elixir, repo: "hexpm", optional: false]}, {:makeup_erlang, "~> 0.1 or ~> 1.0", [hex: :makeup_erlang, repo: "hexpm", optional: false]}, {:makeup_html, ">= 0.1.0", [hex: :makeup_html, repo: "hexpm", optional: true]}], "hexpm", "f7b62346408a83911c2580154e35613eb314e0278aeea72ed7fedef9c1f165b2"}, "makeup": {:hex, :makeup, "1.2.1", "e90ac1c65589ef354378def3ba19d401e739ee7ee06fb47f94c687016e3713d1", [:mix], [{:nimble_parsec, "~> 1.4", [hex: :nimble_parsec, repo: "hexpm", optional: false]}], "hexpm", "d36484867b0bae0fea568d10131197a4c2e47056a6fbe84922bf6ba71c8d17ce"}, "makeup_elixir": {:hex, :makeup_elixir, "1.0.1", "e928a4f984e795e41e3abd27bfc09f51db16ab8ba1aebdba2b3a575437efafc2", [:mix], [{:makeup, "~> 1.0", [hex: :makeup, repo: "hexpm", optional: false]}, {:nimble_parsec, "~> 1.2.3 or ~> 1.3", [hex: :nimble_parsec, repo: "hexpm", optional: false]}], "hexpm", "7284900d412a3e5cfd97fdaed4f5ed389b8f2b4cb49efc0eb3bd10e2febf9507"}, "makeup_erlang": {:hex, :makeup_erlang, "1.0.2", "03e1804074b3aa64d5fad7aa64601ed0fb395337b982d9bcf04029d68d51b6a7", [:mix], [{:makeup, "~> 1.0", [hex: :makeup, repo: "hexpm", optional: false]}], "hexpm", "af33ff7ef368d5893e4a267933e7744e46ce3cf1f61e2dccf53a111ed3aa3727"}, From c5db373843dd343df9a8d3e22bc91b35edaa516d Mon Sep 17 00:00:00 2001 From: Karol Konkol Date: Wed, 1 Oct 2025 10:20:48 +0200 Subject: [PATCH 2/3] Deprecate stream_connected and stream_disconnected --- fishjam/server_notifications.proto | 14 +++++++++- .../lib/fishjam/server_notifications.pb.ex | 28 +++++++++++++++++++ 2 files changed, 41 insertions(+), 1 deletion(-) diff --git a/fishjam/server_notifications.proto b/fishjam/server_notifications.proto index c481da5..75ae6a8 100644 --- a/fishjam/server_notifications.proto +++ b/fishjam/server_notifications.proto @@ -148,6 +148,16 @@ message ServerMessage { notifications.Track track = 4; } + // Notification sent when streamer successfully connects + message StreamConnected { + string stream_id = 1; + } + + // Notification sent when streamer disconnects + message StreamDisconnected { + string stream_id = 1; + } + // Notification sent when viewer successfully connects message ViewerConnected { string stream_id = 1; @@ -170,7 +180,7 @@ message ServerMessage { string streamer_id = 2; } - reserved 12, 22, 23; + reserved 12; oneof content { RoomCrashed room_crashed = 1; @@ -193,6 +203,8 @@ message ServerMessage { TrackMetadataUpdated track_metadata_updated = 19; PeerAdded peer_added = 20; PeerDeleted peer_deleted = 21; + StreamConnected stream_connected = 22 [deprecated = true]; + StreamDisconnected stream_disconnected = 23 [deprecated = true]; ViewerConnected viewer_connected = 24; ViewerDisconnected viewer_disconnected = 25; StreamerConnected streamer_connected = 26; diff --git a/fishjam_protos/lib/fishjam/server_notifications.pb.ex b/fishjam_protos/lib/fishjam/server_notifications.pb.ex index 059b34c..dbf2940 100644 --- a/fishjam_protos/lib/fishjam/server_notifications.pb.ex +++ b/fishjam_protos/lib/fishjam/server_notifications.pb.ex @@ -206,6 +206,22 @@ defmodule Fishjam.ServerMessage.TrackMetadataUpdated do field :track, 4, type: Fishjam.Notifications.Track end +defmodule Fishjam.ServerMessage.StreamConnected do + @moduledoc false + + use Protobuf, protoc_gen_elixir_version: "0.15.0", syntax: :proto3 + + field :stream_id, 1, type: :string, json_name: "streamId" +end + +defmodule Fishjam.ServerMessage.StreamDisconnected do + @moduledoc false + + use Protobuf, protoc_gen_elixir_version: "0.15.0", syntax: :proto3 + + field :stream_id, 1, type: :string, json_name: "streamId" +end + defmodule Fishjam.ServerMessage.ViewerConnected do @moduledoc false @@ -343,6 +359,18 @@ defmodule Fishjam.ServerMessage do json_name: "peerDeleted", oneof: 0 + field :stream_connected, 22, + type: Fishjam.ServerMessage.StreamConnected, + json_name: "streamConnected", + oneof: 0, + deprecated: true + + field :stream_disconnected, 23, + type: Fishjam.ServerMessage.StreamDisconnected, + json_name: "streamDisconnected", + oneof: 0, + deprecated: true + field :viewer_connected, 24, type: Fishjam.ServerMessage.ViewerConnected, json_name: "viewerConnected", From af71635ee8ea91b6651200a38bb9816145eb7543 Mon Sep 17 00:00:00 2001 From: Karol Konkol Date: Wed, 1 Oct 2025 10:22:31 +0200 Subject: [PATCH 3/3] Update docs --- doc/docs.md | 34 ++++++++++++++++++++++++++++++++++ 1 file changed, 34 insertions(+) diff --git a/doc/docs.md b/doc/docs.md index 74b3d56..9ca71ee 100644 --- a/doc/docs.md +++ b/doc/docs.md @@ -98,6 +98,8 @@ - [ServerMessage.RoomCrashed](#fishjam-ServerMessage-RoomCrashed) - [ServerMessage.RoomCreated](#fishjam-ServerMessage-RoomCreated) - [ServerMessage.RoomDeleted](#fishjam-ServerMessage-RoomDeleted) + - [ServerMessage.StreamConnected](#fishjam-ServerMessage-StreamConnected) + - [ServerMessage.StreamDisconnected](#fishjam-ServerMessage-StreamDisconnected) - [ServerMessage.StreamerConnected](#fishjam-ServerMessage-StreamerConnected) - [ServerMessage.StreamerDisconnected](#fishjam-ServerMessage-StreamerDisconnected) - [ServerMessage.SubscribeRequest](#fishjam-ServerMessage-SubscribeRequest) @@ -1247,6 +1249,8 @@ Defines any type of message passed between FJ and server peer | track_metadata_updated | [ServerMessage.TrackMetadataUpdated](#fishjam-ServerMessage-TrackMetadataUpdated) | | | | peer_added | [ServerMessage.PeerAdded](#fishjam-ServerMessage-PeerAdded) | | | | peer_deleted | [ServerMessage.PeerDeleted](#fishjam-ServerMessage-PeerDeleted) | | | +| stream_connected | [ServerMessage.StreamConnected](#fishjam-ServerMessage-StreamConnected) | | **Deprecated.** | +| stream_disconnected | [ServerMessage.StreamDisconnected](#fishjam-ServerMessage-StreamDisconnected) | | **Deprecated.** | | viewer_connected | [ServerMessage.ViewerConnected](#fishjam-ServerMessage-ViewerConnected) | | | | viewer_disconnected | [ServerMessage.ViewerDisconnected](#fishjam-ServerMessage-ViewerDisconnected) | | | | streamer_connected | [ServerMessage.StreamerConnected](#fishjam-ServerMessage-StreamerConnected) | | | @@ -1493,6 +1497,36 @@ Notification sent when a room is deleted + + +### ServerMessage.StreamConnected +Notification sent when streamer successfully connects + + +| Field | Type | Label | Description | +| ----- | ---- | ----- | ----------- | +| stream_id | [string](#string) | | | + + + + + + + + +### ServerMessage.StreamDisconnected +Notification sent when streamer disconnects + + +| Field | Type | Label | Description | +| ----- | ---- | ----- | ----------- | +| stream_id | [string](#string) | | | + + + + + + ### ServerMessage.StreamerConnected