【问题标题】:Emit format in C# UWPC# UWP 中的发射格式
【发布时间】:2019-05-08 06:13:03
【问题描述】:

所以我创建了一个这样的 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[] 与 socket.Emit 中的 JavaScript 前端一样工作,但我不知道它的语法

【问题讨论】:

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


    【解决方案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));
    

    【讨论】:

      猜你喜欢
      • 2019-01-18
      • 1970-01-01
      • 1970-01-01
      • 2019-02-05
      • 2017-01-26
      • 2019-10-23
      • 1970-01-01
      • 2017-06-13
      • 1970-01-01
      相关资源
      最近更新 更多