Saya mencoba membuat server node.js dan klien LÖVE2D untuk berkomunikasi melalui soket. (Hanya tes sederhana "hello world".) Node.js dan LÖVE2D berjalan di PC yang sama.
Saya berhasil mengirim pesan dari LÖVE2D ke node.js, tetapi saya tidak dapat membaca jawaban server.
Kode server node.js saya terlihat seperti ini:
var net = require('net');
var mySocket;
var server = net.createServer(function(socket) {
mySocket = socket;
mySocket.on("connect", onConnect);
mySocket.on("data", onData);
});
function onConnect() {
console.log("Connected to LOVE2D");
}
function onData(d) {
if(d == "exit\0") {
console.log("exit");
mySocket.end();
server.close();
}
else {
console.log("Message from LOVE2D: " + d);
mySocket.write("Message received!", 'utf8');
}
}
server.listen(50000, "localhost");
Dan kode klien di LÖVE2D terlihat seperti ini:
local host, port = "localhost", 50000
local socket = require("socket")
local tcp = assert(socket.tcp())
tcp:connect(host, port)
tcp:send("hello there")
tcp:close()
function love.draw()
love.graphics.print("can't read server answer!", 400, 300)
end
Nah, kode sebelumnya hanya mengirimkan pesan. Sintaks apa yang harus saya gunakan untuk membaca jawaban dari server node.js? Misalnya ini hanya memberi saya kesalahan:
local host, port = "localhost", 50000
local socket = require("socket")
local tcp = assert(socket.tcp())
tcp:connect(host, port)
local answer = tcp:send("hello there")
tcp:close()
function love.draw()
love.graphics.print(answer, 400, 300)
end
Berikut adalah beberapa dokumentasi tentang jaringan di LÖVE2D & LuaSocket, tetapi dokumentasi tersebut tidak membantu saya dalam hal ini:
http://love2d.org/wiki/Tutorial:Networking_with_UDP
http://w3.impa.br/~diego/software/luasocket/
(Maaf untuk pertanyaan "noob", saya benar-benar baru dengan protokol HTTP dan lainnya.)