TSRPC+Cocos

TSRPC文档: https://tsrpc.cn/docs/get-started/api.html

创建

先创建一个默认的会话项目,找一个文件夹在控制台运行以下代码:

复制代码
npx create-tsrpc-app@latest first-api --presets browser
# 或者
yarn create tsrpc-app first-api --presets browser

运行之后根据自己的需求选

等待

新建初始模板结束

会发现在运行Powershell的文件夹下出现了一个"first-api"文件夹,里面包含前端和后端工程。

分别下载依赖,运行如下代码

复制代码
npm i

看看后端里写的readme,运行后端

复制代码
npm run dev

运行前端

注意要用命令行运行,不要用liveServer什么的。

复制代码
npm run dev

可以看到如下页面

都运行起来之后,就可以发消息了

如果使用的是WS,也是一样的操作,前端页面如下:

使用Cocos制作前端

之前的前端部分可以关掉了,接下来用Cocos Creator制作一个前端。

新建一个Cocos项目,把这些复制到package.json

复制代码
  "dependencies": {
    "tsrpc-browser": "^3.4.11",
    "tsrpc-miniapp": "^3.4.1"
  }

先运行

复制代码
npm i

sharedclient的内容复制到cocos里

注册一个全局管理器

复制代码
GameManager.ts
import { HttpClient } from "tsrpc-browser";
import { ReqAddData } from "../shared/protocols/PtlAddData";
import { serviceProto } from "../shared/protocols/serviceProto";

/**
 * 前端游戏状态管理
 * 主要用于实现前端的预测和和解
 */
export class GameManager {
    private client;
    constructor() {
        // Use browser client or miniapp client depend on the platform 
        this.client = new HttpClient(serviceProto, {
            server: "http://192.168.231.98:3000",
            json: true,
            logger: console,
        });
    }

    async addData(obj: ReqAddData): Promise<void> {
        let ret = await this.client.callApi('AddData', obj);
        if (!ret.isSucc) {
            console.log("请求失败");
            return;
        }
    }

    async loadList() {
        let ret = await this.client.callApi('GetData', {});

        // Error
        if (!ret.isSucc) {
            alert(ret.err.message);
            return;
        }

        // Success
        return ret.res.data;
    }
}

发送按钮绑定事件

复制代码
this.gameManager.addData({ content, name });
// 发送完成后刷新一次
this.scheduleOnce(() => {
    this._updateList();
}, 0.5)

配合UI制作等等,实现一个对话窗功能

相关推荐
码途漫谈2 天前
Easy-Vibe开发篇阅读笔记(十二)——后端开发之如何集成Stripe等收费系统
笔记·ai·开源·状态模式·ai编程
techdashen2 天前
四个解析器引发的混乱:Cloudflare 如何用 Rust 统一全栈 Cron 解析
开发语言·rust·状态模式
ximu_polaris2 天前
设计模式(C++)-行为型模式-状态模式
c++·设计模式·状态模式
Beginner x_u3 天前
前端手动实现大文件分片上传调度层:分片计算、并发上传与断点续传
前端·状态模式·断点续传·大文件分片上传
前端不太难3 天前
鸿蒙游戏的“帧”到底是什么?
游戏·状态模式·harmonyos
夕除4 天前
javaweb--16
java·状态模式
MY_TEUCK4 天前
【AI 应用】前端接口联调工程化:把 Swagger 接入沉淀成可复用 Skill
前端·人工智能·uni-app·状态模式
前端不太难5 天前
鸿蒙 App 架构升级:从页面到 System
架构·状态模式·harmonyos
椰羊~王小美5 天前
除了前端 JS 配置的国际化,对于 JS 没覆盖到的文本,怎么实现国际化
前端·javascript·状态模式
yang9yun5 天前
linux宝塔面板使用API自动部署更新文件
linux·运维·状态模式