Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/joomla/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
c#SocketIoClientDotNet,节点js socket.IO_Socket.io - Fatal编程技术网

c#SocketIoClientDotNet,节点js socket.IO

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

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());
    });
}
    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线程。

谢谢你的回答。但我不知道怎么用这个。。。