@foxglove/ electron- socket (英语)
Electron apps 的网络套接字
导言
Raw socket在浏览器背景中不支持,甚至在Electronapp中也不支持. 为了克服这一限制,本套件在Electron渲染器上下文(本套件中称为"收发器";在Electron文档中称为"主世界")和预装器(Electron文档中称为"同化世界")之间使用RPC来与运行时使用 contextIsolation: true在渲染器上下文中显示 TCP/UDP 套接字和服务器类。 API有点像 net.Socket编号 :dgram.Socket 财务报告和审定财务报表 net.Server 从节点.js, 有了基于承诺的方法,因为这些类是建立在同步的RPC上.
使用量
// preload.ts ////////////////////////////////////////////////////////////////
import { PreloaderSockets } from "@foxglove/electron-socket/preloader";
PreloaderSockets.Create();
// renderer.ts ///////////////////////////////////////////////////////////////
import { Sockets } from "@foxglove/electron-socket/renderer";
async function main() {
const net = await Sockets.Create();
const server = await net.createServer();
server.on("connection", (client) => {
client.write(new Uint8Array([42]));
});
server.listen(9000);
const socket = await net.createSocket();
socket.on("data", (data: Uint8Array) => console.log(`Server sent ${data}`));
socket.connect({ port: 9000, host: "localhost" });
}
main();
许可证
@foxglove/electron-socket 获得许可 MIT 许可证。 。 。 .
发展
测试
Electron App有一个小例子,请参见: 实例 目录,可用于手动测试. 使用它运行 yarn example。 。 。 .
释放
- 运行
yarn version --[major|minor|patch]切换到凸起版本 - 运行
git push && git push --tags以驱动新标签 - GitHub 动作会照顾剩下的
保持联系
加入我们 黑频道 问问题 分享反馈 随时了解我们团队的工作.