Розетки - FrontEnd JS с BackEnd C # - PullRequest
       2

Розетки - FrontEnd JS с BackEnd C #

0 голосов
/ 12 октября 2018

Я пытаюсь создать приложение клиент / сервер websockets.Все отлично работает, когда я использовал C # для обоих,

Сервер (C #) выглядит следующим образом:

    static void Main(string[] args)
    {
        //Basic settings
        Socket listenerSocket = new Socket(AddressFamily.InterNetwork, SocketType.Stream , ProtocolType.Tcp);
        IPEndPoint ipEnd = new IPEndPoint(IPAddress.Parse("127.0.0.1"), 3000);
        listenerSocket.Bind(ipEnd);

        listenerSocket.Listen(0); //Listening...
        Socket clientSocket = listenerSocket.Accept();  //Client call!

        byte[] Buffer = new byte[clientSocket.SendBufferSize]; //Create a empty buffer prior receiving

        int readByte;

        do
        {
            readByte = clientSocket.Receive(Buffer);  //Read client
            byte[] rData = new byte[readByte];
            Array.Copy(Buffer, rData, readByte);

            Console.WriteLine("We got: " + System.Text.Encoding.UTF8.GetString(rData));

        } while (readByte > 0);

        Console.WriteLine("Client disconnected");


        Console.ReadKey();


    }

Клиент (C #) выглядит следующим образом:

    static void Main(string[] args)
    {

        Console.WriteLine("This is the client");

        Socket server = new Socket(AddressFamily.InterNetwork, SocketType.Stream, ProtocolType.Tcp);
        IPEndPoint ipEnd = new IPEndPoint(IPAddress.Parse("127.0.0.1"), 3000);
        server.Connect(ipEnd);

        String sendData = "";

        do
        {
            Console.Write("Data to send:");
            sendData = Console.ReadLine();
            server.Send(Encoding.UTF8.GetBytes(sendData));

        } while (sendData.Length > 0);

        server.Close();

    }

Тем не менее, мое золото - это создание клиента в приложении Javascript.(не node.js) хостинг на веб-странице HTML, подключенной к серверу c #.

Я попробовал следующее:

<Script>
    var socket;
    //window.WebSocket = window.WebSocket || window.MozWebSocket;
    var Socket = new WebSocket("ws://127.0.0.1:3000");

    socket.addEventListener("open", function (evt) {
        alert("Connection opened: " + socket.readyState);
    }, false);

    socket.addEventListener("error", function (evt) {
        alert('Error : ' + evt.message);
    }, false);

    if (socket.readyState == WebSocket.OPEN) {
        socket.send("hello");
    }

</Script>

Когда я загружал веб-страницу, сервер сказал, что я подключен:

Мы получили:

GET / HTTP/1.1
Host: 127.0.0.1:3000
Connection: Upgrade
Pragma: no-cache
Cache-Control: no-cache
User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 
(KHTML, like Gecko) Chrome/69.0.3497.100 Safari/537.36
Upgrade: websocket
Origin: http://localhost
Sec-WebSocket-Version: 13
Accept-Encoding: gzip, deflate, br
Accept-Language: en-CA,en;q=0.9,en-GB;q=0.8,en-US;q=0.7,fr;q=0.6
Sec-WebSocket-Key: PYYTro//nISgObfnhQ22wg==
Sec-WebSocket-Extensions: permessage-deflate; client_max_window_bits

Следующим шагом является чтение / запись с / на сервер с использованием javascript, как я делаю с клиентом C #.Кто-нибудь может помочь мне написать правильный код для этого в javascript?

Заранее спасибо.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...