Эмитировать формат в C # UWP - PullRequest
0 голосов
/ 06 декабря 2018

Итак, я создал сервер 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...

проблема здесь в следующем: я хочу, чтобы сообщение emit имело точно такой же формат, что и интерфейс, чтобы оно могло отображаться так:

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

, который является объектом params [] в C #, работает как интерфейс JavaScript в сокете. Выдает, но я не знаю, что это синтаксис

1 Ответ

0 голосов
/ 06 декабря 2018

Ответ основан на JSON, поэтому вы можете использовать для этого Json.NET.

Первая установка Newtonsoft.Json из NuGet:

> 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));
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...