c# SocketIoClientDotNet, node js socket.IO
Posted
技术标签:
【中文标题】c# SocketIoClientDotNet, node js socket.IO【英文标题】: 【发布时间】:2020-06-11 00:25:36 【问题描述】:c# winform 尝试通过套接字发送 node.js 套接字。 客户端连接到服务器,但是socket.emit 值和socket.on 值没有正常通信。 我想找到解决办法。
我想把这个客户端的名字作为json类型的数据发送到服务器,从服务器接收json类型的数据,读取它,然后将数据发送回json。
socket.emit和socket.on的数据不正常,所以代码已经被删除了。
c#代码
private void socketLogin(string email, string pw)
var socket = IO.Socket("http://localhost:3000/login.html");
socket.On(Socket.EVENT_CONNECT, () =>
);
var loginjson = new JObject();
loginjson.Add("email", email);
loginjson.Add("password", pw);
socket.Emit("socketlogin", loginjson.ToString());
socket.On("login", (data) =>
MessageBox.Show(data.ToString());
);
node.js 代码
var server = require('http').Server(app);
var io = require('socket.io')(server);
io.on('connection', function(socket)
console.log('connection');
socket.on('socketlogin', function(data)
var testLogin = 'Login': "success" ;
socket.emit('login', data);
);
);
server.listen(app.get('3000'))
【问题讨论】:
【参考方案1】:在您的 C# 中,您在函数中创建套接字,但在函数结束时,套接字被丢弃,因为它只是一个局部变量。
有很多方法可以解决这个问题,但基本上你想要做的是使用一个线程来处理套接字通信,然后将事情分派回你的 UI 线程。
【讨论】:
感谢您的回答。但是我不知道怎么用这个...以上是关于c# SocketIoClientDotNet, node js socket.IO的主要内容,如果未能解决你的问题,请参考以下文章
无法从Win Forms C#app连接到远程Node.js Socket.IO服务器