通过 Web Socket 网络在 C# 服务器上传输 JSON 字符串数据
Posted
技术标签:
【中文标题】通过 Web Socket 网络在 C# 服务器上传输 JSON 字符串数据【英文标题】:Transfer JSON string data on a C# Server via Web Socket Network 【发布时间】: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
【问题讨论】:
【参考方案1】:在你的代码中,你有var socket = new WebSocket("ws://localhost:8181");
尝试将其更改为var socket = new WebSocket("ws://192.XXX.XXX.XXX");
其中192.XXX.XXX.XXX
是您要将数据发送到的另一台计算机的IP 地址。
Localhost
本质上是自己的电脑。希望这有帮助!
【讨论】:
以上是关于通过 Web Socket 网络在 C# 服务器上传输 JSON 字符串数据的主要内容,如果未能解决你的问题,请参考以下文章