c#SocketIoClientDotNet,节点js socket.IO
c#winform尝试通过套接字发送node.js套接字。 客户端已连接到服务器,但socket.emit值和socket.on值无法正常通信。 我想找到一个解决办法 我想将这个客户机名称作为json类型的数据发送到服务器,从服务器接收json类型的数据,读取它,然后将数据发送回json socket.emit和socket.on的数据工作不正常,因此代码已被删除 c#代码c#SocketIoClientDotNet,节点js socket.IO,socket.io,Socket.io,c#winform尝试通过套接字发送node.js套接字。 客户端已连接到服务器,但socket.emit值和socket.on值无法正常通信。 我想找到一个解决办法 我想将这个客户机名称作为json类型的数据发送到服务器,从服务器接收json类型的数据,读取它,然后将数据发送回json socket.emit和socket.on的数据工作不正常,因此代码已被删除 c#代码 private void socketLogin(string email, string pw) { var s
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());
});
}
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'))
node.js代码
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());
});
}
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'))
在你的C#中,你把你的套接字放在一个函数中,但是在函数的末尾,套接字被扔掉了,因为它只是一个局部变量
有很多方法可以解决这个问题,但基本上你要做的是使用一个线程来处理套接字通信,然后将内容发送回你的UI线程。谢谢你的回答。但我不知道怎么用这个。。。