This repo has moved: https://github.com/rrweb-io/syncit
yuyz0112 / syncit Goto Github PK
View Code? Open in Web Editor NEWa privacy-first co-browsing tool
Home Page: https://syncit.luckid.io/
a privacy-first co-browsing tool
Home Page: https://syncit.luckid.io/
This repo has moved: https://github.com/rrweb-io/syncit
Currently trying out syncit locally using unpkg:
<!doctype html>
<html>
<head>
<script src="https://unpkg.com/@syncit/[email protected]/dist/index.js"></script>
<script src="https://unpkg.com/@syncit/[email protected]/dist/index.js"></script>
<link rel="stylesheet" href="https://unpkg.com/@syncit/[email protected]/dist/style.css">
</head>
<body>
<p>Test</p>
</body>
<script>
new syncit.Embed({
target: document.body,
props: {
createTransporter({ role, uid }) {
return new syncitTransporter.LocalStorageTransporter({
role,
uid,
});
},
},
});
</script>
</html>
How do I set english locale?
我import syncit from '@syncit/ui';报"export 'default' (imported as 'syncit') was not found in '@syncit/ui'
使用指南是不是没更新呀 路径改了吗
Hi, whats the License on this project?
Hey thanks for syncit.
I wanted to try this out on my machine, probably missing some steps to get this started. Can you please share the basic steps, requirements to follow?
如题
Hi @Yuyz0112 ,
Thank you so much for syncit.
I am trying to customize the events that go back from mirror to the source(for re-evaluation).
From the looks of it, it seems the applyMirrorAction
function is responsible for evaluating these actions and applying them to the original source(not sure if this is correct or not) and the rrweb replayer sends them back normally.
However, I cannot find anything which records interaction events on the mirror side after the replayer.enableInteract()
is invoked , for sending them back to the source.
The project works locally on PC using LocalStorageTransporter and also Peerjs as server:
Local peerjs settings:
peerHost: localhost
peerPort: 9000
peerPath: /myapp
Source: http://localhost:5000/embed.html
Mirror: http://localhost:5000/app.html
1:1 in same browser works
1:1 in Chrome <> Safari works
But it doesn’t work hosted on EC2 using PeerjsTransport on mobile devices:
Remote peerjs settings:
18.197.123.66
1:1 does not work in same browser
1:1 does not work in same browser on different devices
大佬有空更新下吗 可以支持canvas,或者告诉我怎么更新rrweb依赖 能够支持canvas回放
These are the steps I have tried to run this solution:
Getting errors, please suggest.
C:\Users\DOM\Downloads\syncit-master>npx lerna run build
lerna notice cli v3.22.1
lerna info Executing command in 3 packages: "yarn run build"
lerna info run Ran npm script 'build' in '@syncit/core' in 4.7s:
yarn run v1.22.17
$ rollup --config
Done in 4.49s.
lerna ERR! yarn run build exited 1 in '@syncit/ui'
lerna ERR! yarn run build stdout:
yarn run v1.22.17
$ rollup -c
info Visit https://yarnpkg.com/en/docs/cli/run for documentation about this command.
lerna ERR! yarn run build stderr:
warning package.json: No license field
[!] Error: Package subpath './compiler.js' is not defined by "exports" in C:\Users\DOM\Downloads\syncit-master\node_modules\svelte\package.json
Error: Package subpath './compiler.js' is not defined by "exports" in C:\Users\DOM\Downloads\syncit-master\node_modules\svelte\package.json
at new NodeError (node:internal/errors:371:5)
at throwExportsNotFound (node:internal/modules/esm/resolve:453:9)
at packageExportsResolve (node:internal/modules/esm/resolve:729:3)
at resolveExports (node:internal/modules/cjs/loader:482:36)
at Function.Module._findPath (node:internal/modules/cjs/loader:522:31)
at Function.Module._resolveFilename (node:internal/modules/cjs/loader:919:27)
at Function.Module._load (node:internal/modules/cjs/loader:778:27)
at Module.require (node:internal/modules/cjs/loader:1005:19)
at require (node:internal/modules/cjs/helpers:102:18)
at Object. (C:\Users\DOM\Downloads\syncit-master\node_modules\rollup-plugin-svelte\index.js:11:4)
error Command failed with exit code 1.
lerna ERR! yarn run build exited 1 in '@syncit/ui'
lerna WARN complete Waiting for 1 child process to exit. CTRL-C to exit immediately.
This is really well implemented. One feature request I can see here is microphone access to talk with participants.
Hello, great developer, can syncit follow rrweb to connect with socket? Why must peerjs be used to realize remote control?
new WebSocketTransporter({
role,
uid,
url: wsUrl,
sendRemoteControl: xxxxx
});
这里要怎么传值?
Thank you for such great library @Yuyz0112
Looks like, things started working when I follow the below structure
import {Embed, App} from '@syncit/ui';
import '@syncit/ui/dist/style.css';
import { LocalStorageTransporter } from '@syncit/transporter';
new Embed({
target: document.body,
props: {
createTransporter({ role, uid }) {
return new LocalStorageTransporter({
role,
uid,
});
},
},
});
new App({
target: document.body,
props: {
createTransporter({ role, uid }) {
return new LocalStorageTransporter({
role,
uid,
});
},
},
});
Or else it raises syncit undefined or Embed Undefined.
Also how to change the language from Mandarin to English?
Errorr building with TS, after import ...
> vue-tsc --noEmit && vite build
vite v2.9.14 building for production...
transforming (1177) node_modules/lodash-es/seq.jsUse of eval is strongly discouraged, as it poses security risks and may cause issues with minification
✓ 1339 modules transformed.
'default' is not exported by node_modules/@syncit/ui/dist/index.mjs, imported by
1: import syncit from '@syncit/ui';
^
2: import '@syncit/ui/dist/style.css';
3: import { LocalStorageTransporter } from '@syncit/transporter';
error during build:
Error: 'default' is not exported by node_modules/@syncit/ui/dist/index.mjs, imported by
Please let me know how to run syncit project
如果是web页面控制可以通过dom得到点击对象及其位置,再得到点击事件后一起传给对端重建,从而避免抓屏转视频流传给对端的方式。我的问题是: 如果需要远程控制整个桌面,而不仅仅是控制web页面时,有什么好的方法可以在控制端通过浏览器,远程控制源端整个桌面进行操作? thanks
Currently it's possible to connect one source with one mirror 1:1. For the future it would be great to have 1 source and n mirrors 1:n.
I tested and it's not possible to have > 1 mirrors. You can enter a session in a n tabs, but only the latest/newest mirror keeps receiving the event stream.
Highly appreciated feature.
在ios手机上播放另外一端的页面,点击事件,输入框都可以播放。但页面滚动无法播放 @Yuyz0112
第一步:生成@syncit/core的npm软连接
cd packages/core
yarn && yarn build
npm link
第二步:进入UI项目,连接本地依赖并启动
cd packages/ui
yarn link "@syncit/core"
yarn && yarn dev
第三步骤:访问下方地址
http://localhost:5000/embed.html
http://localhost:5000/app.html
是否可能使用非iframe方式实现录制页面中某个区域
页面初始化化时调用new syncit.Embed 报错
报错信息: TypeError: Cannot read property 'Embed' of undefined
代码如下:<script> import syncit from '@syncit/ui/dist/index' import '@syncit/ui/dist/style.css' import { LocalStorageTransporter } from '@syncit/transporter' export default { name: 'Test', mounted() { new syncit.Embed({ target: document.body, props: { createTransporter() { return new LocalStorageTransporter({ role: '11', uid: '22' }) } } }) } } </script>
Hi Team, I tried the implementing syncit with a angular application using the User Guide. I am getting the below error:
error TS2554: Expected 0 arguments, but got 1. return new LocalStorageTransporter({ role,uid });
Could you please help resolve the issue?
Also, the default labels for buttons are shown in Chinese, is there any option to change to English?
A declarative, efficient, and flexible JavaScript library for building user interfaces.
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
An Open Source Machine Learning Framework for Everyone
The Web framework for perfectionists with deadlines.
A PHP framework for web artisans
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
Some thing interesting about web. New door for the world.
A server is a program made to process requests and deliver data to clients.
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
Some thing interesting about visualization, use data art
Some thing interesting about game, make everyone happy.
We are working to build community through open source technology. NB: members must have two-factor auth.
Open source projects and samples from Microsoft.
Google ❤️ Open Source for everyone.
Alibaba Open Source for everyone
Data-Driven Documents codes.
China tencent open source team.