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);

この例では、2 つのプロパティを持つ匿名オブジェクトを作成します。次に、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();
    }
}
読み込み中...
文章は、創作者によって署名され、ブロックチェーンに安全に保存されています。