I can't connect to project by socket

I have this code on server-side (JS):
const express = require(‘express’);
const app = express();
// PORT = 3000;
// env = development;
// …
var server = app.listen(PORT, () => {
console.log(
Express Server started on Port ${app.get( "port" )} | Environment : ${app.get("env")}
);
});
server.on(“connection”, (listener) => {
console.log(“Someone has connected”)
listener.on(“data”, (data) => {
console.log("data recived " + data);
});
});

And client-side (C#):

    class Program
    {
        [STAThread]
        static async Task Main(string[] args)
        {
            Stopwatch stopwatch = new Stopwatch();
            stopwatch.Start();
            var socket_response = GetSocket.SocketSendReceive("project-name.glitch.me", 3000, "GET /api/v1/client\r\n\r\n");
            stopwatch.Stop();
            Console.WriteLine("Socket: " + socket_response + $" // {stopwatch.ElapsedMilliseconds}");
            stopwatch.Restart();
            var api_response = await ApiRequest.GetProductAsync<Client[]>("/api/v1/client");
            stopwatch.Stop();
            Console.WriteLine("ApiRequest: " + api_response + $" // {stopwatch.ElapsedMilliseconds}");
        }
    }

    class Client
    {
        public string id { get; set; }
        public string nameofpc { get; set; }
    }

    static class ApiRequest
    {
        public static async Task<T> GetProductAsync<T>(string path)
        {
            HttpClient client = new HttpClient();
            client.BaseAddress = new Uri("http://project-name.glitch.me/");
            T product = default;
            HttpResponseMessage response = await client.GetAsync(path);
            if (response.IsSuccessStatusCode)
            {
                product = await response.Content.ReadAsAsync<T>();
            }
            return product;
        }
    }

    public class GetSocket
    {
        // Synchronous connect using host name (resolved by the
        // Connect call.)
        public static Socket Connect3(string host, int port)
        {
            Socket s = new Socket(AddressFamily.InterNetwork,
                SocketType.Stream,
                ProtocolType.Tcp);

            Console.WriteLine("Establishing Connection to {0}",
                host);
            s.Connect(host, port);
            Console.WriteLine("Connection established");
            return s;
        }

        // This method requests the home page content for the specified server.
        public static string SocketSendReceive(string server, int port, string request)
        {
            Byte[] bytesSent = Encoding.ASCII.GetBytes(request);
            Byte[] bytesReceived = new Byte[256];
            string page = string.Empty;

            // Create a socket connection with the specified server and port.
            using (Socket s = Connect3(server,port))
            {
                if (s == null)
                    return ("Connection failed");

                // Send request to the server.
                s.Send(bytesSent, bytesSent.Length, 0);

                // Receive the server home page content.
                int bytes = 0;

                // The following will block until the page is transmitted.
                do
                {
                    bytes = s.Receive(bytesReceived, bytesReceived.Length, 0);
                    page = page + Encoding.ASCII.GetString(bytesReceived, 0, bytes);
                }
                while (bytes > 0);
            }

            return page;
        }
    }

When i trying to connect to project, i got C# System.Net.Sockets.SocketException: A connection attempt failed because the connected party did not properly respond after a period of time, or established connection failed because connected host has failed to respond.
But ApiRequest is working fine. We need to use sockets because the latency of the latter is much less. Full source here: https://gist.github.com/Zerumi/0a4ec0e54965728fe5e91b9c2131ac84
image