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();
    }
}
加载中...
此文章数据所有权由区块链加密技术和智能合约保障仅归创作者所有。