Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

zmodem 可以使用了吗? #1

Closed
leffss opened this issue Mar 25, 2020 · 17 comments
Closed

zmodem 可以使用了吗? #1

leffss opened this issue Mar 25, 2020 · 17 comments

Comments

@leffss
Copy link

leffss commented Mar 25, 2020

我也做堡垒机,就是xterm.js v4 不支持 zmodem,恼火

@walirt
Copy link
Owner

walirt commented Mar 26, 2020

暂时没有 给zmodem提了issues 作者好像要我提供单元测试 我不会ts 你遇到的问题是啥 加个qq交流一下?

@leffss
Copy link
Author

leffss commented Mar 26, 2020

xterm.js v4 不支持 zmodem 插件,然后我就找网上 3.14.5 版本使用 zmodem 插件的 demo

我这样写的

<script src="https://unpkg.com/xterm@3.14.5/dist/xterm.js"></script>
<script src="https://unpkg.com/xterm@3.14.5/dist/addons/attach/attach.js"></script>
<script src="https://unpkg.com/xterm@3.14.5/dist/addons/webLinks/webLinks.js"></script>
<script src="https://unpkg.com/xterm@3.14.5/dist/addons/fit/fit.js"></script>
<script src="https://unpkg.com/xterm@3.14.5/dist/addons/fullscreen/fullscreen.js"></script>
<script src="https://unpkg.com/xterm@3.14.5/dist/addons/zmodem/zmodem.js"></script>
<script src="https://unpkg.com/xterm@3.14.5/dist/addons/search/search.js"></script>
<script>
        Terminal.applyAddon(attach);
        Terminal.applyAddon(fit);
        Terminal.applyAddon(fullscreen);
        Terminal.applyAddon(search);
        Terminal.applyAddon(webLinks);
        Terminal.applyAddon(zmodem);
        ....
</script>

结果浏览器提示

zmodem.ts:90 Uncaught TypeError: Cannot read property 'Browser' of undefined
    at Object.apply (zmodem.ts:90)
    at Function.Terminal.applyAddon (Terminal.ts:181)
    at ws_connect ((index):216)
    at HTMLButtonElement.onclick ((index):94)

不知道什么原因呢?!

@walirt
Copy link
Owner

walirt commented Mar 26, 2020

xtermjs4 移除了这个插件 但是这个插件有个单独的仓库 zmodemjs 我看别人用xtermjs4+上这个插件也是可以的 但是我的不知道为什么不行 issuse#10

@leffss
Copy link
Author

leffss commented Mar 26, 2020

我还是先试试 v3 版本的 zmodem 插件,v3 版本的 xterm.js 就够用了,没必要非用 v4 的,把 v3 的插件搞定了如果有时间可以再来折腾下 v4 的

@leffss
Copy link
Author

leffss commented Mar 27, 2020

捕获

v3 版本的我搞定了

@walirt
Copy link
Owner

walirt commented Mar 27, 2020

你这个后端是python还是go的 给个地址我学习一下

@leffss
Copy link
Author

leffss commented Mar 27, 2020

https://github.com/leffss/gowebssh ,python 版本的后面来实现

@leffss leffss closed this as completed Mar 27, 2020
@leffss
Copy link
Author

leffss commented Apr 9, 2020

https://github.com/leffss/django-webssh ,v4 版本也实现了

@Lvyc1995
Copy link

Lvyc1995 commented Sep 2, 2020

https://github.com/leffss/django-webssh ,v4 版本也实现了

兄弟 6666

@hessonsu
Copy link

我遇到了跟您一模一样的问题!

@hessonsu
Copy link

哈哈,我解决了。
window.zsentry = new Zmodem.Sentry({
to_terminal: function(octets){},
sender: function(octets){},
sender 您没有使用websocket 去发送到终端

@NeroSolomon
Copy link

@leffss 请问你是怎么解决这个问题的?
image

@leffss
Copy link
Author

leffss commented Apr 16, 2021

@leffss 请问你是怎么解决这个问题的?
image

自行参考:https://github.com/leffss/gowebssh

@NeroSolomon
Copy link

@leffss 请问你是怎么解决这个问题的?
image

自行参考:https://github.com/leffss/gowebssh

我就是使用你的repo里的方案,还是有这种问题,想确认一下这个是后端问题还是前端问题呢?

@NeroSolomon
Copy link

方案是xterm v3.14.5的方案,可以正常监听rz,sz,但输入命令之后就遇到报错

@leffss
Copy link
Author

leffss commented Apr 16, 2021

方案是xterm v3.14.5的方案,可以正常监听rz,sz,但输入命令之后就遇到报错

https://github.com/leffss/gowebssh 中目前使用 xterm v4.8,sz和rz均可正常使用;不保证xterm v3.14.5正确性

@NeroSolomon
Copy link

@leffss 十分感谢,我先看下v4.8的实现

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

5 participants