mirror of
https://github.com/hensm/fx_cast.git
synced 2026-06-09 17:19:59 +00:00
Remove leading slash from message names
This commit is contained in:
@@ -62,14 +62,14 @@ export default class Media {
|
||||
messageData.mediaSessionId = status.mediaSessionId;
|
||||
}
|
||||
|
||||
this.sendMessage("shim:/media/update", messageData);
|
||||
this.sendMessage("shim:media/update", messageData);
|
||||
}
|
||||
});
|
||||
}
|
||||
|
||||
public messageHandler (message: Message) {
|
||||
switch (message.subject) {
|
||||
case "bridge:/media/sendMediaMessage": {
|
||||
case "bridge:media/sendMediaMessage": {
|
||||
let error = false;
|
||||
try {
|
||||
this.channel.send(message.data.message);
|
||||
@@ -77,7 +77,7 @@ export default class Media {
|
||||
error = true;
|
||||
}
|
||||
|
||||
this.sendMessage("shim:/media/sendMediaMessageResponse", {
|
||||
this.sendMessage("shim:media/sendMediaMessageResponse", {
|
||||
messageId: message.data.messageId
|
||||
, error
|
||||
});
|
||||
|
||||
@@ -69,7 +69,7 @@ export default class Session {
|
||||
|
||||
this.clientReceiver.on("message", (message: any) => {
|
||||
if (message.type === "RECEIVER_STATUS") {
|
||||
this.sendMessage("shim:/session/updateStatus", message.status);
|
||||
this.sendMessage("shim:session/updateStatus", message.status);
|
||||
|
||||
if (message.status.applications) {
|
||||
const receiverApp = message.status.applications[0];
|
||||
@@ -79,7 +79,7 @@ export default class Session {
|
||||
|
||||
if (receiverAppId !== this.appId) {
|
||||
// Close session
|
||||
this.sendMessage("shim:/session/stopped");
|
||||
this.sendMessage("shim:session/stopped");
|
||||
this.client.close();
|
||||
clearInterval(this.clientHeartbeatIntervalId!);
|
||||
return;
|
||||
@@ -103,7 +103,7 @@ export default class Session {
|
||||
|
||||
this.sessionId = this.app.sessionId;
|
||||
|
||||
this.sendMessage("shim:/session/connected", {
|
||||
this.sendMessage("shim:session/connected", {
|
||||
sessionId: this.app.sessionId
|
||||
, namespaces: this.app.namespaces
|
||||
, displayName: this.app.displayName
|
||||
@@ -117,34 +117,34 @@ export default class Session {
|
||||
|
||||
public messageHandler (message: Message) {
|
||||
switch (message.subject) {
|
||||
case "bridge:/session/close":
|
||||
case "bridge:session/close":
|
||||
this.close();
|
||||
break;
|
||||
|
||||
case "bridge:/session/impl_addMessageListener":
|
||||
case "bridge:session/impl_addMessageListener":
|
||||
this._impl_addMessageListener(message.data.namespace);
|
||||
break;
|
||||
|
||||
case "bridge:/session/impl_sendMessage":
|
||||
case "bridge:session/impl_sendMessage":
|
||||
this._impl_sendMessage(
|
||||
message.data.namespace
|
||||
, message.data.message
|
||||
, message.data.messageId);
|
||||
break;
|
||||
|
||||
case "bridge:/session/impl_setReceiverMuted":
|
||||
case "bridge:session/impl_setReceiverMuted":
|
||||
this._impl_setReceiverMuted(
|
||||
message.data.muted
|
||||
, message.data.volumeId);
|
||||
break;
|
||||
|
||||
case "bridge:/session/impl_setReceiverVolumeLevel":
|
||||
case "bridge:session/impl_setReceiverVolumeLevel":
|
||||
this._impl_setReceiverVolumeLevel(
|
||||
message.data.newLevel
|
||||
, message.data.volumeId);
|
||||
break;
|
||||
|
||||
case "bridge:/session/impl_stop":
|
||||
case "bridge:session/impl_stop":
|
||||
this._impl_stop(message.data.stopId);
|
||||
break;
|
||||
}
|
||||
@@ -179,7 +179,7 @@ export default class Session {
|
||||
private _impl_addMessageListener (namespace: string) {
|
||||
this.createChannel(namespace);
|
||||
this.channelMap.get(namespace)?.on("message", (data: any) => {
|
||||
this.sendMessage("shim:/session/impl_addMessageListener", {
|
||||
this.sendMessage("shim:session/impl_addMessageListener", {
|
||||
namespace
|
||||
, data: JSON.stringify(data)
|
||||
});
|
||||
@@ -205,7 +205,7 @@ export default class Session {
|
||||
error = true;
|
||||
}
|
||||
|
||||
this.sendMessage("shim:/session/impl_sendMessage", {
|
||||
this.sendMessage("shim:session/impl_sendMessage", {
|
||||
messageId
|
||||
, error
|
||||
});
|
||||
@@ -225,7 +225,7 @@ export default class Session {
|
||||
error = true;
|
||||
}
|
||||
|
||||
this.sendMessage("shim:/session/impl_setReceiverMuted", {
|
||||
this.sendMessage("shim:session/impl_setReceiverMuted", {
|
||||
volumeId
|
||||
, error
|
||||
});
|
||||
@@ -245,7 +245,7 @@ export default class Session {
|
||||
error = true;
|
||||
}
|
||||
|
||||
this.sendMessage("shim:/session/impl_setReceiverVolumeLevel", {
|
||||
this.sendMessage("shim:session/impl_setReceiverVolumeLevel", {
|
||||
volumeId
|
||||
, error
|
||||
});
|
||||
@@ -268,7 +268,7 @@ export default class Session {
|
||||
|
||||
clearInterval(this.clientHeartbeatIntervalId!);
|
||||
|
||||
this.sendMessage("shim:/session/impl_stop", {
|
||||
this.sendMessage("shim:session/impl_stop", {
|
||||
stopId
|
||||
, error
|
||||
});
|
||||
|
||||
@@ -23,7 +23,7 @@ export function handleSessionMessage (message: any) {
|
||||
// Forward message to instance message handler
|
||||
existingSessions.get(sessionId)?.messageHandler(message);
|
||||
} else {
|
||||
if (message.subject === "bridge:/session/initialize") {
|
||||
if (message.subject === "bridge:session/initialize") {
|
||||
existingSessions.set(sessionId, new Session(
|
||||
message.data.address
|
||||
, message.data.port
|
||||
@@ -46,7 +46,7 @@ export function handleMediaMessage (message: any) {
|
||||
// Forward message to instance message handler
|
||||
existingMedia.get(mediaId)!.messageHandler(message);
|
||||
} else {
|
||||
if (message.subject === "bridge:/media/initialize") {
|
||||
if (message.subject === "bridge:media/initialize") {
|
||||
// Get Session object media belongs to
|
||||
const parentSession = existingSessions.get(
|
||||
message.data._internalSessionId);
|
||||
|
||||
@@ -20,7 +20,7 @@ const browser = mdns.createBrowser(mdns.tcp("googlecast"), {
|
||||
|
||||
function onBrowserServiceUp (service: mdns.Service) {
|
||||
sendMessage({
|
||||
subject: "main:/serviceUp"
|
||||
subject: "main:serviceUp"
|
||||
, data: {
|
||||
host: service.addresses[0]
|
||||
, port: service.port
|
||||
@@ -32,7 +32,7 @@ function onBrowserServiceUp (service: mdns.Service) {
|
||||
|
||||
function onBrowserServiceDown (service: mdns.Service) {
|
||||
sendMessage({
|
||||
subject: "main:/serviceDown"
|
||||
subject: "main:serviceDown"
|
||||
, data: {
|
||||
id: service.txtRecord.id
|
||||
}
|
||||
@@ -67,7 +67,7 @@ export function startDiscovery (options: InitializeOptions) {
|
||||
|
||||
listener.on("receiverStatus", (status: ReceiverStatus) => {
|
||||
const receiverStatusMessage: any = {
|
||||
subject: "main:/receiverStatus"
|
||||
subject: "main:receiverStatus"
|
||||
, data: {
|
||||
id
|
||||
, status: {
|
||||
|
||||
@@ -33,7 +33,7 @@ export async function startMediaServer (filePath: string, port: number) {
|
||||
} else {
|
||||
console.error("Error: Media path is not a file.");
|
||||
sendMessage({
|
||||
subject: "mediaCast:/mediaServer/error"
|
||||
subject: "mediaCast:mediaServer/error"
|
||||
});
|
||||
|
||||
return;
|
||||
@@ -41,7 +41,7 @@ export async function startMediaServer (filePath: string, port: number) {
|
||||
} catch (err) {
|
||||
console.error("Error: Failed to find media path.");
|
||||
sendMessage({
|
||||
subject: "mediaCast:/mediaServer/error"
|
||||
subject: "mediaCast:mediaServer/error"
|
||||
});
|
||||
|
||||
return;
|
||||
@@ -51,7 +51,7 @@ export async function startMediaServer (filePath: string, port: number) {
|
||||
if (!contentType) {
|
||||
console.error("Error: Failed to find media type.");
|
||||
sendMessage({
|
||||
subject: "mediaCast:/mediaServer/error"
|
||||
subject: "mediaCast:mediaServer/error"
|
||||
});
|
||||
|
||||
return;
|
||||
@@ -146,14 +146,14 @@ export async function startMediaServer (filePath: string, port: number) {
|
||||
if (!localAddress) {
|
||||
console.error("Failed to get local address.");
|
||||
sendMessage({
|
||||
subject: "mediaCast:/mediaServer/error"
|
||||
subject: "mediaCast:mediaServer/error"
|
||||
});
|
||||
stopMediaServer();
|
||||
return;
|
||||
}
|
||||
|
||||
sendMessage({
|
||||
subject: "mediaCast:/mediaServer/started"
|
||||
subject: "mediaCast:mediaServer/started"
|
||||
, data: {
|
||||
mediaPath: fileName
|
||||
, subtitlePaths: Array.from(subtitles.keys())
|
||||
@@ -163,10 +163,10 @@ export async function startMediaServer (filePath: string, port: number) {
|
||||
});
|
||||
|
||||
mediaServer.on("close", () => sendMessage({
|
||||
subject: "mediaCast:/mediaServer/stopped"
|
||||
subject: "mediaCast:mediaServer/stopped"
|
||||
}));
|
||||
mediaServer.on("error", () => sendMessage({
|
||||
subject: "mediaCast:/mediaServer/error"
|
||||
subject: "mediaCast:mediaServer/error"
|
||||
}));
|
||||
|
||||
mediaServer.listen(port);
|
||||
|
||||
@@ -48,7 +48,7 @@ export function startReceiverSelector (data: string) {
|
||||
|
||||
if (!jsonData.mediaType) {
|
||||
sendMessage({
|
||||
subject: "main:/receiverSelector/stop"
|
||||
subject: "main:receiverSelector/stop"
|
||||
, data: jsonData
|
||||
});
|
||||
|
||||
@@ -56,7 +56,7 @@ export function startReceiverSelector (data: string) {
|
||||
}
|
||||
|
||||
sendMessage({
|
||||
subject: "main:/receiverSelector/selected"
|
||||
subject: "main:receiverSelector/selected"
|
||||
, data: jsonData
|
||||
});
|
||||
});
|
||||
@@ -64,7 +64,7 @@ export function startReceiverSelector (data: string) {
|
||||
|
||||
selectorApp.on("error", err => {
|
||||
sendMessage({
|
||||
subject: "main:/receiverSelector/error"
|
||||
subject: "main:receiverSelector/error"
|
||||
, data: err.message
|
||||
});
|
||||
});
|
||||
@@ -74,7 +74,7 @@ export function startReceiverSelector (data: string) {
|
||||
selectorAppOpen = false;
|
||||
|
||||
sendMessage({
|
||||
subject: "main:/receiverSelector/close"
|
||||
subject: "main:receiverSelector/close"
|
||||
});
|
||||
}
|
||||
});
|
||||
|
||||
@@ -28,47 +28,47 @@ process.on("SIGTERM", () => {
|
||||
* for managing existing ones.
|
||||
*/
|
||||
decodeTransform.on("data", (message: Message) => {
|
||||
if (message.subject.startsWith("bridge:/session/")) {
|
||||
if (message.subject.startsWith("bridge:session/")) {
|
||||
handleSessionMessage(message);
|
||||
return;
|
||||
}
|
||||
if (message.subject.startsWith("bridge:/media/")) {
|
||||
if (message.subject.startsWith("bridge:media/")) {
|
||||
handleMediaMessage(message);
|
||||
return;
|
||||
}
|
||||
|
||||
|
||||
switch (message.subject) {
|
||||
case "bridge:/getInfo": {
|
||||
case "bridge:getInfo": {
|
||||
encodeTransform.write(__applicationVersion);
|
||||
break;
|
||||
}
|
||||
|
||||
case "bridge:/initialize": {
|
||||
case "bridge:initialize": {
|
||||
startDiscovery(message.data);
|
||||
break;
|
||||
}
|
||||
|
||||
case "bridge:/stopReceiverApp": {
|
||||
case "bridge:stopReceiverApp": {
|
||||
stopReceiverApp(message.data.receiver.host
|
||||
, message.data.receiver.port);
|
||||
break;
|
||||
}
|
||||
|
||||
// Receiver selector
|
||||
case "bridge:/receiverSelector/open": {
|
||||
case "bridge:receiverSelector/open": {
|
||||
startReceiverSelector(message.data); break;
|
||||
}
|
||||
case "bridge:/receiverSelector/close": {
|
||||
case "bridge:receiverSelector/close": {
|
||||
stopReceiverSelector(); break;
|
||||
}
|
||||
|
||||
// Media server
|
||||
case "bridge:/mediaServer/start": {
|
||||
case "bridge:mediaServer/start": {
|
||||
startMediaServer(message.data.filePath, message.data.port);
|
||||
break;
|
||||
}
|
||||
case "bridge:/mediaServer/stop": {
|
||||
case "bridge:mediaServer/stop": {
|
||||
stopMediaServer();
|
||||
break;
|
||||
}
|
||||
|
||||
@@ -88,24 +88,24 @@ export interface Receiver {
|
||||
|
||||
export type Messages = [
|
||||
{
|
||||
subject: "shim:/serviceUp"
|
||||
subject: "shim:serviceUp"
|
||||
, data: { id: Receiver["id"] }
|
||||
}
|
||||
, {
|
||||
subject: "shim:/serviceDown"
|
||||
subject: "shim:serviceDown"
|
||||
, data: { id: Receiver["id"] }
|
||||
}
|
||||
, {
|
||||
subject: "shim:/launchApp"
|
||||
subject: "shim:launchApp"
|
||||
, data: { receiver: Receiver }
|
||||
}
|
||||
|
||||
// Session messages
|
||||
, {
|
||||
subject: "shim:/session/stopped"
|
||||
subject: "shim:session/stopped"
|
||||
}
|
||||
, {
|
||||
subject: "shim:/session/connected"
|
||||
subject: "shim:session/connected"
|
||||
, data: {
|
||||
sessionId: string;
|
||||
namespaces: Array<{ name: string }>;
|
||||
@@ -114,33 +114,33 @@ export type Messages = [
|
||||
}
|
||||
}
|
||||
, {
|
||||
subject: "shim:/session/updateStatus"
|
||||
subject: "shim:session/updateStatus"
|
||||
, data: any
|
||||
}
|
||||
, {
|
||||
subject: "shim:/session/impl_addMessageListener"
|
||||
subject: "shim:session/impl_addMessageListener"
|
||||
, data: { namespace: string, data: string }
|
||||
}
|
||||
, {
|
||||
subject: "shim:/session/impl_sendMessage"
|
||||
subject: "shim:session/impl_sendMessage"
|
||||
, data: { messageId: string, error: boolean }
|
||||
}
|
||||
, {
|
||||
subject: "shim:/session/impl_setReceiverMuted"
|
||||
subject: "shim:session/impl_setReceiverMuted"
|
||||
, data: { volumeId: string, error: boolean }
|
||||
}
|
||||
, {
|
||||
subject: "shim:/session/impl_setReceiverVolumeLevel"
|
||||
subject: "shim:session/impl_setReceiverVolumeLevel"
|
||||
, data: { volumeId: string, error: boolean }
|
||||
}
|
||||
, {
|
||||
subject: "shim:/session/impl_stop"
|
||||
subject: "shim:session/impl_stop"
|
||||
, data: { stopId: string, error: boolean }
|
||||
}
|
||||
|
||||
// Bridge session messages
|
||||
, {
|
||||
subject: "bridge:/session/initialize"
|
||||
subject: "bridge:session/initialize"
|
||||
, data: {
|
||||
address: string
|
||||
, port: number
|
||||
@@ -150,43 +150,43 @@ export type Messages = [
|
||||
, _id: string;
|
||||
}
|
||||
, {
|
||||
subject: "bridge:/session/close"
|
||||
subject: "bridge:session/close"
|
||||
, _id: string;
|
||||
}
|
||||
, {
|
||||
subject: "bridge:/session/impl_leave"
|
||||
subject: "bridge:session/impl_leave"
|
||||
, data: { id: string }
|
||||
, _id: string
|
||||
}
|
||||
, {
|
||||
subject: "bridge:/session/impl_sendMessage"
|
||||
subject: "bridge:session/impl_sendMessage"
|
||||
, data: { namespace: string, message: any, messageId: string }
|
||||
, _id: string
|
||||
}
|
||||
, {
|
||||
subject: "bridge:/session/impl_setReceiverMuted"
|
||||
subject: "bridge:session/impl_setReceiverMuted"
|
||||
, data: { muted: boolean, volumeId: string }
|
||||
, _id: string
|
||||
}
|
||||
, {
|
||||
subject: "bridge:/session/impl_setReceiverVolumeLevel"
|
||||
subject: "bridge:session/impl_setReceiverVolumeLevel"
|
||||
, data: { newLevel: number, volumeId: string }
|
||||
, _id: string
|
||||
}
|
||||
, {
|
||||
subject: "bridge:/session/impl_stop"
|
||||
subject: "bridge:session/impl_stop"
|
||||
, data: { stopId: string }
|
||||
, _id: string
|
||||
}
|
||||
, {
|
||||
subject: "bridge:/session/impl_addMessageListener"
|
||||
subject: "bridge:session/impl_addMessageListener"
|
||||
, data: { namespace: string }
|
||||
, _id: string
|
||||
}
|
||||
|
||||
// Media messages
|
||||
, {
|
||||
subject: "shim:/media/update"
|
||||
subject: "shim:media/update"
|
||||
, data: {
|
||||
currentTime: number
|
||||
, _lastCurrentTime: number
|
||||
@@ -201,13 +201,13 @@ export type Messages = [
|
||||
}
|
||||
}
|
||||
, {
|
||||
subject: "shim:/media/sendMediaMessageResponse"
|
||||
subject: "shim:media/sendMediaMessageResponse"
|
||||
, data: { messageId: string, error: boolean }
|
||||
}
|
||||
|
||||
// Bridge media messages
|
||||
, {
|
||||
subject: "bridge:/media/initialize"
|
||||
subject: "bridge:media/initialize"
|
||||
, data: {
|
||||
sessionId: string
|
||||
, mediaSessionId: number
|
||||
@@ -216,54 +216,54 @@ export type Messages = [
|
||||
, _id: string;
|
||||
}
|
||||
, {
|
||||
subject: "bridge:/media/sendMediaMessage"
|
||||
subject: "bridge:media/sendMediaMessage"
|
||||
, data: { message: any, messageId: string }
|
||||
, _id: string;
|
||||
}
|
||||
|
||||
// Bridge messages
|
||||
, {
|
||||
subject: "main:/receiverSelector/selected"
|
||||
subject: "main:receiverSelector/selected"
|
||||
, data: ReceiverSelectionCast
|
||||
}
|
||||
, {
|
||||
subject: "main:/receiverSelector/error"
|
||||
subject: "main:receiverSelector/error"
|
||||
, data: string
|
||||
}
|
||||
, {
|
||||
subject: "main:/receiverSelector/close"
|
||||
subject: "main:receiverSelector/close"
|
||||
}
|
||||
, {
|
||||
subject: "main:/receiverSelector/stop"
|
||||
subject: "main:receiverSelector/stop"
|
||||
, data: ReceiverSelectionStop
|
||||
}
|
||||
, {
|
||||
subject: "bridge:/getInfo"
|
||||
subject: "bridge:getInfo"
|
||||
}
|
||||
, {
|
||||
subject: "bridge:/initialize"
|
||||
subject: "bridge:initialize"
|
||||
, data: { shouldWatchStatus: boolean }
|
||||
}
|
||||
, {
|
||||
subject: "bridge:/receiverSelector/open"
|
||||
subject: "bridge:receiverSelector/open"
|
||||
, data: any }
|
||||
, {
|
||||
subject: "bridge:/receiverSelector/close"
|
||||
subject: "bridge:receiverSelector/close"
|
||||
}
|
||||
, {
|
||||
subject: "bridge:/stopReceiverApp"
|
||||
subject: "bridge:stopReceiverApp"
|
||||
, data: { receiver: Receiver }
|
||||
}
|
||||
, {
|
||||
subject: "bridge:/mediaServer/start"
|
||||
subject: "bridge:mediaServer/start"
|
||||
, data: { filePath: string, port: number }
|
||||
}
|
||||
, {
|
||||
subject: "bridge:/mediaServer/stop"
|
||||
subject: "bridge:mediaServer/stop"
|
||||
}
|
||||
|
||||
, {
|
||||
subject: "mediaCast:/mediaServer/started"
|
||||
subject: "mediaCast:mediaServer/started"
|
||||
, data: {
|
||||
mediaPath: string
|
||||
, subtitlePaths: string[]
|
||||
@@ -271,22 +271,22 @@ export type Messages = [
|
||||
}
|
||||
}
|
||||
, {
|
||||
subject: "mediaCast:/mediaServer/stopped"
|
||||
subject: "mediaCast:mediaServer/stopped"
|
||||
}
|
||||
, {
|
||||
subject: "mediaCast:/mediaServer/error"
|
||||
subject: "mediaCast:mediaServer/error"
|
||||
}
|
||||
|
||||
, {
|
||||
subject: "main:/serviceUp"
|
||||
subject: "main:serviceUp"
|
||||
, data: Receiver
|
||||
}
|
||||
, {
|
||||
subject: "main:/serviceDown"
|
||||
subject: "main:serviceDown"
|
||||
, data: { id: string }
|
||||
}
|
||||
, {
|
||||
subject: "main:/receiverStatus"
|
||||
subject: "main:receiverStatus"
|
||||
, data: { id: string, status: ReceiverStatus }
|
||||
}
|
||||
];
|
||||
|
||||
Reference in New Issue
Block a user