Write the Code. Change the World.

3月 21

网页简易实现 3d glb 等模型预览。常见的插件有 threejs 和 babylonjs。

https://endoc.cnbabylon.com/extensions/the_babylon_viewer

https://www.npmjs.com/package/babylonjs-viewer

https://sandbox.babylonjs.com/

开始

# 安装
pnpm add babylonjs-viewer

# 使用
<template>
    <div id="babylon-view-con"></div>
</template>

<script setup lang="ts">
import { ref, nextTick } from 'vue'
import * as BabylonViewer from 'babylonjs-viewer';

function playByBabylon(url: string | null) {
  nextTick(() => {
    if (!url) {
      url = 'https://playground.babylonjs.com/scenes/Rabbit.babylon'
    }

    let domElement: HTMLElement | null = document.getElementById('babylon-view-con');
    if (domElement) {
      new BabylonViewer.DefaultViewer(domElement, {
        scene: {
          debug: false
        },
        camera: {
          behaviors: {
            autoRotate: 0
          }
        },
        model: {
          url: url
        }
      })
    }
  })
}
</script>

阅读全文 >>

3月 13

LogicFlow 默认有一些节点。但有时候,默认的节点完成不了项目需求。这个就需要自定义节点,刚好LogicFlow 支持自定义节点。

https://07.logic-flow.cn/guide/advance/customNode.html

如上图,现在需要一个输入口,n 个输出口,这个 n 是大于 0 的整数。一般也就最多 10 以下的整数吧。默认的节点就不支持,这里就需要自定义了。

要解决以下问题。

  • 节点支持 resize (继承 RectResize,就可以实现)
  • 根据输出口的数字动态生成锚点(1 个默认输入锚点, n 个输出锚点)
  • 在锚点旁边加入数字进行标识(大于 1 个的时候,需要和数据一一对应,所以需要标识)

阅读全文 >>

1月 26

skynet 框架,在 skynet.start 方法中,对 skynet.newservice 进行 name 时候会报错 attempt to call a nil value (field 'name') 的处理。

使用 skynet.wait, 等待异步的完成就可以。下边给出示例。

local Service = '.Service'
skynet.start(function()
    local service = skynet.newservice('xxx')
    skynet.wait(service)
    skynet.name(Service, service)
end)

阅读全文 >>

1月 24

在做自己的业务之前,尝试官方的样例是很有必要的。只需要一个装好 docker 的电脑,几步就可以完成测试。

官方 websocket 示例代码:
https://github.com/cloudwu/skynet/blob/master/examples/simplewebsocket.lua

skynet 的 docker 环境构建
https://blog.vini123.com/1130

准备工作

  • docker 环境
  • 并按照上边链接里的方式构建出了 docker 镜像。

开始

docker images 看看构建的镜像是否存在,这个是前提。

# 以交互式的方式构建并进入容器
docker run -it --rm -p 9948:9948 skynet:1.7 bash

# 安装 vim (因为我们要修改下 config)文件
apk add vim

# 编辑 config 文件
vim examples/config

阅读全文 >>

1月 24

skynet 最早就能提供 socket 服务。后来,也能提供 websocket 服务。这里,接着之前的代码,构建一个 websocket 服务。

https://github.com/cloudwu/skynet/blob/master/examples/simplewebsocket.lua

上边是官方 websocket 的一个示例。

开始

以官方为借鉴,这里先创建一个 websocket.lua 文件。完整的路径是 www/websocket/service/connect/websocket.lua

阅读全文 >>