0
votes

c# winform tries to send node.js socket through socket. The client is connected to server, but the socket.emit value and socket.on value do not communicate normally. I'd like to find a solution to this.

I would like to send this name of client to the server as json type data, receive json type data from the server, read it, and send data back to json.

The data of socket.emit and socket.on are not working properly, so the code has been deleted.

c# code

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 Code

    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

1 Answers

0
votes

in your C# you are making your socket inside a function, but at the end of the function the socket is thrown away because it is only a local variable.

There are many ways to deal with this, but essentially what you want to do is use a thread to handle the socket comms then dispatch things back to your UI thread.