#WebSocket connections with undefined properties

5 messages · Page 1 of 1 (latest)

supple acorn
#

Every client trying to create a socket connection with my Deno Socket Server seems to give undefined values for everything. I don't know if this is client sided or server sided (Both clients connected are using different socket libraries for different languages, Javascript and Python)

pallid jasper
#

You'd need to share your code, it's hard to say what's going on

supple acorn
#

ServerSocket/main.ts

Deno.serve(
  {hostname: host, port: 8080},
  (req) => {
    const upgrade  = req.headers.get("upgrade");

    if (upgrade?.toLowerCase() !== "websocket") {
      return new Response("Not Websocket Upgrade", {status: 404});
    }

    const {socket, response} = Deno.upgradeWebSocket(req);
    console.log('New Socket Connection:', socket)
    const type = req.headers.get("sec-websocket-protocol")?.split(", ")[2];
    
    if (type?.toLowerCase() === clientType.receiver) {
      const session = req.headers.get("sec-websocket-protocol")?.split(", ")[1]!;
      console.log(`${new Date()}: Received Receiver Connection from ${session}`)
      receivers.set(session, socket);
    }
    else if (req.headers.get("client")?.toLowerCase() === clientType.sender) {
      console.log(`${new Date()}: Received sender connection session ${req.headers.get("session")}`)
      senders.set(req.headers.get("session")!, []);
    }

    socket.onopen = () => {
      console.log("socket opened: ", socket);
      const activeSessions = Array.from(senders.keys());
      const activeReceivers = Array.from(receivers.keys());
      console.log(`${new Date()}: Active Sender Sessions: ${activeSessions}`);
      console.log(`${new Date()}: Active Receiver Sessions: ${activeReceivers}`);
    };
//
//  More Code here
//
    return response;
  }
)
#

Controller-Preview-React/src/App.tsx

import {w3cwebsocket} from 'websocket'
const client = new w3cwebsocket(url, 
  ['echo-protocol', session, clientId], '', {}, {
    body: JSON.stringify({
      session: 123456,
      type: 'receiver'
    })
})