C#UWP中的发射格式

时间:2018-12-06 14:09:48

标签: javascript c# node.js uwp socket.io

所以我创建了一个像这样的nodejs服务器:

var io = socket(server);

io.on('connection', (socket) => {

console.log('made socket connection', socket.id);

// Handle chat event
socket.on('chat', function(data){
    console.log(data);
    io.sockets.emit('chat', data);
});

具有漂亮的用户界面,并通过以下JavaScript函数完美实现:

btn.addEventListener('click', function(){
socket.emit('chat', {
  message: message.value,
  handle: handle.value
 });
 });

得到了这样的结果

made socket connection eo96mhJ1_RwG9WYMAAAR
{ message: 'Hello', handle: 'From the Browser' }

现在,我希望我的UWP应用程序连接到服务器并发出消息,就像服务器上的前端一样 我使用“ SocketIOClientDotNet” nuget

下面是代码:

var socket = IO.Socket("ws://localhost:8888");
socket.Connect();
ReceivedText.Text = "Connect Completed";
socket.Emit("chat", "This is a message from UWP...");

控制台回复:

made socket connection 8rRfm0gOmJeg9orIAAAe
This is a message from UWP...

这里的问题是:我希望发出消息的格式与前端完全相同,因此它可以显示为:

{ message: 'Hello', handle: 'From UWP' }

这是C#中的params object [],其工作方式类似于套接字中的JavaScript前端。发出,但我不知道它的语法

1 个答案:

答案 0 :(得分:1)

响应基于JSON,因此您可以使用Json.NET。

首先从NuGet安装Newtonsoft.Json

> Install-Package Newtonsoft.Json -Version 12.0.1

创建一个类:

public class SocketMessage
{
   public string Message {get;set;}
   public string Handle {get;set;}
}

现在使用Json.NET序列化此对象的实例:

var message = new SocketMessage()
{
   Message = "Hello",
   Handle = "From UWP"
};
socket.Emit("chat", JsonConvert.SerializeObject(message));