C#Winforms Socket.IO到NodeJS服务器

这是我的服务器脚本:

var express = require('express'); var mysql = require('mysql'); var app = express(); var server = require('http').createServer(app); var io = require('socket.io').listen(server); app.set('port', 3000); io.on("connection", function (socket) { var testData = { arg1: "ARG1", arg2: "ARG2" } socket.on("TEST_MSG", function (data) { console.log("got message: "+data.arg1+", "+data.arg2); socket.emit("TEST", testData); }); socket.on("disconnect", function () { console.log("user disconnected"); }); }); server.listen(app.get('port'), function () { console.log("------- SERVER IS RUNNING -------"); }); 

在Unity中,有一个Socket.IO库允许我轻松地与这个服务器进行通信,Unity代码如下所示:

 public class Main : MonoBehaviour { public SocketIOComponent socket; void Start () { socket.On("TEST", OnTestMsg); } public void OnTestMsg(SocketIOEvent evt) { print("Received Msg From Server"); string arg1 = JsonToString(evt.data.GetField("arg1").ToString()); string arg2 = JsonToString(evt.data.GetField("arg2").ToString()); print("arg1: " + arg1); print("arg2: " + arg2); } string JsonToString(string target) { string[] newString = Regex.Split(target, "\""); return newString[1]; } public void SendMsg() { var data = new Dictionary<string, string>(); data["arg1"] = "ARG1"; data["arg2"] = "ARG2"; socket.Emit("TEST_MSG", new JSONObject(data)); } 

}

我无法弄清楚如何在Visual Studio C#winforms中做同样的事情。 我试了几个库,不能让他们连接和/或发送像这样的JSON对象。 任何帮助吗? 谢谢。