banner
xingli

xingli

猫娘爱好者

godotC#對接 socket.io

godotC# 對接 socket.io#

godot 程式碼

using Godot;
using System;
using SocketIOClient;

public partial class test : Node
{
    private SocketIO client;

    public override void _Ready()
    {
        client = new SocketIO("http://localhost:11000/");
        client.On("hi", response =>
        {
            Console.WriteLine(response);
            string text = response.GetValue<string>();
        });
        client.OnConnected += async (sender, e) =>
        {
            await client.EmitAsync("hi", "socket.io");
        };
        client.ConnectAsync();
    }
}

socketio v4 程式碼

// 導入 socket.io 模組
const socketIO = require('socket.io');

// 建立 HTTP 伺服器
const http = require('http');
const server = http.createServer();

// 建立 socket.io 伺服器
const io = socketIO(server);

// 監聽連線事件
io.on('connection', (socket) => {
    console.log('Client connected:', socket.id);

    // 監聽客戶端的 "hi" 事件
    socket.on('hi', (message) => {
        console.log('Received "hi" from client:', socket.id);
        console.log('Message:', message);

        // 發送訊息給客戶端
        socket.emit('hi', 'Hello from server!');
    });

    // 監聽斷開連線事件
    socket.on('disconnect', () => {
        console.log('Client disconnected:', socket.id);
    });
});

// 啟動伺服器,監聽指定埠號
const PORT = 11000;
server.listen(PORT, () => {
    console.log(`Server listening on port ${PORT}`);
});

是的,socket.io 發的是一個字串。如果您想發送一個物件,您可以將物件轉換為 JSON 字串,然後將其發送到伺服器。在伺服器端,您可以將 JSON 字串轉換回物件。

以下是一個範例:

var obj = new { name = "John", age = 30 };
var json = JsonConvert.SerializeObject(obj);
await client.EmitAsync("identity", json);

在這個範例中,我們建立了一個包含兩個屬性的匿名物件。然後,我們使用 JsonConvert.SerializeObject () 方法將物件轉換為 JSON 字串。最後,我們使用 client.EmitAsync () 方法將 JSON 字串發送到伺服器。

如果您需要更多關於 socket.io 的資訊,請告訴我,我會盡力幫助您。

如果您想新增一個名為 identity 的訊息,您可以使用以下程式碼:

client.OnConnected += async (sender, e) =>
{
    await client.EmitAsync("hi", "socket.io");
    await client.EmitAsync("identity", "socket.io");
};
client.ConnectAsync();

這個程式碼片段中的 client 是一個 socket.io 客戶端物件,它通過呼叫 ConnectAsync () 方法連接到伺服器。在客戶端連接到伺服器時,它會向伺服器發送一個 "hi" 訊息和一個 "identity" 訊息。

如果您需要更多關於 socket.io 的資訊,請告訴我,我會盡力幫助您。

是的,您需要呼叫 ConnectAsync () 方法才能連接到伺服器。ConnectAsync () 方法是一個非同步方法,它將在背景執行,不會阻塞主線程。

如果您想了解更多關於 ConnectAsync () 方法的資訊,請告訴我,我會盡力幫助您。

using Godot;
using System;
using SocketIOClient;

public partial class test : Node
{
    private SocketIO client;

    public override void _Ready()
    {
        var id = new { username = "maomao" };
        client = new SocketIO("http://localhost:11000/");
        client.On("hi", response =>
        {
            // Console.WriteLine(response);
            GD.Print(response);
            string text = response.GetValue<string>();
        });
        client.OnConnected += async (sender, e) =>
        {
            await client.EmitAsync("hi", "socket.io");
            await client.EmitAsync("identify", id);
        };
        client.ConnectAsync();
    }
}
載入中......
此文章數據所有權由區塊鏈加密技術和智能合約保障僅歸創作者所有。