Передача строковых данных JSON на сервер C # через сеть веб-сокетов - PullRequest
0 голосов
/ 27 июня 2018

В настоящее время клиент отправляет данные на сервер, но на том же компьютере я хочу, чтобы клиент отправил эти данные на сервер на другом компьютере. Есть ли способ сделать это? Я приложил клиентскую и серверную часть кода, который отправляет и получает данные. Я хочу, чтобы клиент отправлял данные на сервер C # на другом компьютере с помощью веб-сокетов, но он отправляет данные только в том случае, если и сервер, и клиент находятся на одном компьютере.

Код сервера:

private static void bodyFrameReader_FrameArrived(object sender, BodyFrameArrivedEventArgs e)
    {
        bool dataReceived = false;

        using (BodyFrame bodyFrame = e.FrameReference.AcquireFrame())
        {
            if (bodyFrame != null)
            {
                if (bodies == null)
                {
                    bodies = new Body[bodyFrame.BodyCount];

                }
                bodyFrame.GetAndRefreshBodyData(bodies);
                dataReceived = true;
            }
        }

        if (dataReceived)
        {

            foreach (var client in clients)
            {

                var users = bodies.Where(s => s.IsTracked.Equals(true)).ToList();

                if (users.Count>0){
                    string json = users.Serialize(_coordinateMapper, _mode);

                    Console.WriteLine("jsonstring: " + json);
                    Console.WriteLine("After body serialization and to send");

                    client.Send(json);
                }

            }
        }

    }
}

Код клиента ниже:

    var socket = new WebSocket("ws://localhost:8181");

    socket.onopen = function (event) {
        label.innerHTML = "Connection open";
    }


    socket.onmessage = function (event) {
        if (typeof event.data === "string") {

            var jsonObject = JSON.parse(event.data);

            console.log("Json Arrived");


            for (var i = 0; i < jsonObject.skeletons.length; i++) { 

                for (var j = 0; j < jsonObject.skeletons[i].joints.length; j++) {
                    var joint = jsonObject.skeletons[i].joints[j];

                }
            }

выход

1 Ответ

0 голосов
/ 24 июля 2018

В вашем коде, где у вас есть var socket = new WebSocket("ws://localhost:8181");

Попробуйте изменить его на var socket = new WebSocket("ws://192.XXX.XXX.XXX"); Где 192.XXX.XXX.XXX - это IP-адрес другого компьютера, на который вы хотите отправить данные.

Localhost означает, по сути, собственный компьютер. Надеюсь, это помогло!

...