Connecting Unity3d with Node.js

I am trying to use socket.io to connect my unity3d program with node.js.

Using UnitySocketIO, I was able to establish a connection between the client and server.

However, the On or Emit method does not work.

Can someone help me with this problem?

void Start () { string socketUrl = "http://127.0.0.1:50122"; Debug.Log("socket url: " + socketUrl); this.socket = new Client(socketUrl); this.socket.Opened += this.SocketOpened; this.socket.Message += this.SocketMessage; this.socket.SocketConnectionClosed += this.SocketConnectionClosed; this.socket.Error += this.SocketError; this.socket.Connect(); } private void SocketOpened (object sender, EventArgs e) { Debug.Log("socket opened"); // i got this message this.socket.On ("message", (data) => { Debug.Log ("message : " + data); }); this.socket.Emit("join", "abc"); Debug.Log("Emit done"); // i got this message } 

....

 io.sockets.on('connection', function (socket) { console.log('connect'); // i got this message socket.emit('message', 'Hello World!'); socket.on('join', function (id) { console.log('client joined with id ' + id); socket.emit('message', 'Hello ' + id); }); }); 
+6
source share
1 answer

Your event may be due to the wrong order, try like this:

 void Start() { string socketUrl = "http://127.0.0.1:50122"; Debug.Log("socket url: " + socketUrl); this.socket = new Client(socketUrl); this.socket.Opened += this.SocketOpened; this.socket.Message += this.SocketMessage; this.socket.SocketConnectionClosed += this.SocketConnectionClosed; this.socket.Error += this.SocketError; this.socket.On("message", (data) => { Debug.Log("message: " + data); }); this.socket.Connect(); } 

And for node:

 io.sockets.on('connection', function(socket) { console.log('client connected'); socket.emit('message', 'Hello World!'); }); 

Also, do not allow the client to determine its own identifier, as it is "hacked" in most cases. Only the server should make important decisions, not the client.

+2
source

Source: https://habr.com/ru/post/949112/


All Articles