WebSocket and Forwarder Example

This service supports WebSocket connections for real-time communication and acts as a forwarder for messages. To use it:

How to Interact with the WebSocket Server

  1. **Direct Connection:** Connect directly using wss://forwarder.doc2speech.com/connect/<channel-name>.
  2. **POST then Connect:** First, send a POST request to https://forwarder.doc2speech.com/connect/<channel-name>. After a successful POST, initiate the WebSocket connection to the same URL using wss://.
  3. Send messages, and any connected clients on the same channel will receive them.

Sample JavaScript Code for Direct Connection

const ws = new WebSocket("wss://forwarder.doc2speech.com/connect/my-channel");

ws.onopen = () => {
  console.log("Connected to the WebSocket channel!");
  ws.send("Hello, World!");
};

ws.onmessage = (event) => {
  console.log("Message received:", event.data);
};

ws.onclose = () => {
  console.log("WebSocket connection closed.");
};

ws.onerror = (error) => {
  console.error("WebSocket error:", error);
};
  

Sample JavaScript Code for POST Initiation

async function initiateSession() {
  try {
    const response = await fetch("https://forwarder.doc2speech.com/connect/my-channel", {
      method: "POST",
      headers: { "Content-Type": "application/json" }
    });

    if (response.ok) {
      const ws = new WebSocket("wss://forwarder.doc2speech.com/connect/my-channel");

      ws.onopen = () => console.log("Connected!");
      ws.onmessage = (event) => console.log("Message received:", event.data);
      ws.onclose = () => console.log("WebSocket closed.");
    } else {
      console.error("Failed to initiate session. Status:", response.status);
    }
  } catch (error) {
    console.error("Failed to initiate POST or connect via WebSocket:", error);
  }
}

initiateSession();
  

Forwarder Example

Client A sends a message:

const wsA = new WebSocket("wss://forwarder.doc2speech.com/connect/my-channel");
wsA.onopen = () => {
  wsA.send("Hello from Client A!");
};
  

Client B receives the message:

const wsB = new WebSocket("wss://forwarder.doc2speech.com/connect/my-channel");
wsB.onmessage = (event) => {
  console.log("Client B received:", event.data);
};
  

WebSocket Test Client