惯性聚合 高效追踪和阅读你感兴趣的博客、新闻、科技资讯
阅读原文 在惯性聚合中打开

推荐订阅源

Apple Machine Learning Research
Apple Machine Learning Research
爱范儿
爱范儿
博客园_首页
博客园 - 【当耐特】
V
Visual Studio Blog
博客园 - 叶小钗
月光博客
月光博客
美团技术团队
J
Java Code Geeks
小众软件
小众软件
Y
Y Combinator Blog
博客园 - Franky
Martin Fowler
Martin Fowler
博客园 - 聂微东
Microsoft Azure Blog
Microsoft Azure Blog
IT之家
IT之家
MyScale Blog
MyScale Blog
人人都是产品经理
人人都是产品经理
Microsoft Security Blog
Microsoft Security Blog
OSCHINA 社区最新新闻
OSCHINA 社区最新新闻
阮一峰的网络日志
阮一峰的网络日志
酷 壳 – CoolShell
酷 壳 – CoolShell
钛媒体:引领未来商业与生活新知
钛媒体:引领未来商业与生活新知
云风的 BLOG
云风的 BLOG

夜行人

回家路上 第一期的直播演示项目 震动检测器 正能量 在线参观CodeLab Neverland 发布 CodeLab Adapter 3.3.1 DynamicTable 之 纸糊方向盘 CodeLab DynamicTable: 一个可实施的技术方案 CodeLab Insight 发布 Alpha 版 情人节 Home Assistant 周报 && IoT 周报 (02) Joplin: 关注隐私的 Evernote 开源替代软件 浏览器的未来与 Web 传感器 Home Assistant 周报 && IoT 周报 (01) 百宝箱(01) 论自由 介绍 WebThings Home Assistant 周报 && iot 周报 (00) 百宝箱(00) 毛姆读书心得 传世之作 周末徒步 CodeLab Adapter ❤️ Jupyter/Python 航班 躲雨 夏令营途中 [译]思想--作为一种技术 The future of coding 美国之行 三门问题的程序模拟
CodeLab Adapter 接入第三方平台
种瓜 · 2020-05-03 · via 夜行人

文章目录

说明

这是之前的文章,更新以匹配 CodeLab Adapter 3.0

开放连接

CodeLab Adapter 允许codelab.club的合作方将CodeLab Adapter接入到自己的平台。从而让平台获得与开源硬件/AI/IoT 交互的能力,同时他们也可以将CodeLab Adapter用作真实的 Python 解释器(与本地文件系统/网络交互)。

我们将在这篇文章中展示如何将CodeLab Adapter接入到任何 Scratch3.0 平台中。事实上,你可以将它接入任何 web 平台中(blockly/brython…)。

本文中, 我们给出了 CodeLab Adapter eim 插件的源码 以及 scratch3-adapter extension_eim 的源码

教程

我们假设你已经读了创建你的第一个 Scratch3.0 Extension,如果没有,阅读完再回来。最好跟着文章操作一遍。

在 Scratch3.0 中创建 EIM Extension

Scratch3.0 插件源码

scratch-vm/src/extensions目录创建scratch3_eim/index.js

Scratch3.0 eim 插件的源码我们已经放到 Github 上了:scratch3_eim,源码本身不做过多解释,对照着它的功能,很容易搞懂。

值得注意的是,scratch3_eim依赖于socket.io-client, 你需要在 scratch-vm 中先安装依赖:socket.io-client

Scratch3.0 与CodeLab Adapter建立连接,最关键的部分是:

1
2
3
this.socket = io(`//${adapterHost}:12358` + "/test", {
  transports: ["websocket"]
});

从架构图中,你可以更好地理解它们的交互:

从架构途图中也可以看出,CodeLab Adapter支持任何平台。Scratch3.0 只是它的一个 client,并没有特殊性,你可以在 blockly app 或者任何其他什么地方接入CodeLab Adapter

CodeLab Adapter extension_eim 源码

CodeLab Adapter extension_eim 的源码,我们也已经更新到 Github 上: extension_eim.py

此外

也是可以配合 Scratch3.0 eim 插件使用的.

开发者优先

目前我们允许开发者在本地(127.0.0.1)将CodeLab Adapter接入到任何平台中。

需要注意的是,你需要将网站运行为 https(webpack-dev-server --https)来与CodeLab Adapter通信。

参考