所以我创建了一个像这样的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前端。发出,但我不知道它的语法
答案 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));