【问题标题】:Transfer JSON string data on a C# Server via Web Socket Network通过 Web Socket 网络在 C# 服务器上传输 JSON 字符串数据
【发布时间】:2018-06-27 17:12:27
【问题描述】:

当前客户端正在将数据发送到服务器,但在同一台计算机上,我希望客户端将此数据发送到另一台计算机上的服务器。有没有办法做到这一点?我已经附加了发送和接收数据的代码的客户端和服务器端。我希望客户端使用 Web 套接字将数据发送到另一台计算机上的 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];

                }
            }

Output

【问题讨论】:

    标签: javascript c# json websocket kinect


    【解决方案1】:

    在你的代码中,你有var socket = new WebSocket("ws://localhost:8181");

    尝试将其更改为var socket = new WebSocket("ws://192.XXX.XXX.XXX"); 其中192.XXX.XXX.XXX 是您要将数据发送到的另一台计算机的IP 地址。

    Localhost 本质上是自己的电脑。希望这有帮助!

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2018-12-01
      • 2012-01-16
      • 1970-01-01
      • 2014-12-04
      • 2011-03-11
      • 1970-01-01
      • 2017-12-31
      相关资源
      最近更新 更多