maxmcd / webtty

Share a terminal session over WebRTC

Home Page:https://maxmcd.github.io/webtty/

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

Webtty on web example does not work?

arjenpdevries opened this issue · comments

In both firefox and chrome, I get an error at https://maxmcd.github.io/webtty/, whenever I try to paste the offer message...

InvalidParameterError: Empty or null SDP provided to setLocalDescription
InvalidStateError: setRemoteDescription not called

Can you paste your offer message?

Actually, if you could email it to me. Email addr is on my github profile.

I will send you one, but really any offer triggers the same problem (it already breaks as soon as I start typing).

I'm having this issue. I have the same error in Firefox and in chrome the error I have is:

OperationError: Failed to execute 'setRemoteDescription' on 'RTCPeerConnection': Failed to parse SessionDescription. Expect line: v= InvalidStateError: Failed to execute 'createAnswer' on 'RTCPeerConnection': PeerConnection cannot create an answer in a state other than have-remote-offer or have-local-pranswer.

This error occurs on key any press - I don't even think it recognizes the entire offer I paste in :/

UPDATE: I looked into the source the issue appears to be a missing decode function in the startSession function:

image

Furthemore, to get it connect to a session you need to put your offer in the url as a hash argument - e.g: http://localhost:8080/#connection_data

image

I'm not sure whether the on("data" function parses the paste correctly since if refreshes the term as soon as a key is pressed which may not be what we need.

The url hash was intended as a convenience, it shouldn't be required.

The encode and decode functions are defined within webassembly. They are here: https://github.com/maxmcd/webtty/blob/master/web-client/src/main.go#L60-L63
(Webassembly can't mutate the global javascript state by itself but wasm_exec.js allows Go to call into the browser context)

If there was an error loading the webassembly those functions would not be available, but assuming success decode and encode should be available on the window object.

Appreciate you looking into this, I still haven't been able to reproduce on my end, will look into it again.

Thanks for the quick reply!

This is my system information, hopefully it helps:

Fedora 29, kernel 4.19.13-300 all up to date.
Docker version 18.09.1, build 4c52b90
docker-compose version 1.22.0, build f46880f

Running docker-compose up builds everything successfully (Though it complains about the nodejs version so I had to remove it manually to download the latest):

Successfully built 403eef497ede
Successfully tagged maxmcd/webtty-client:latest
Starting webtty_web-client_1 ... done
Recreating webtty_base_1     ... done
Attaching to webtty_web-client_1, webtty_base_1
webtty_base_1 exited with code 0
web-client_1  | 172.20.0.1 - - [18/Jan/2019:13:39:40 +0000] "GET / HTTP/1.1" 200 263 "-" "curl/7.61.1" "-"

Any clues would be much appreciated,
Thanks

Hmmmm... I also run fedora, one system was fc28 the other fc29. Will try to test again soon.

Hey @arjenpdevries,
Any updates? :)

This seems to imply to me that WebTTY is just unusable for some/all users? I can't get an example working and I don't know how to resolve it at all.

@rivertam maybe!

I can get it working, this issue seems to (weirdly) be limited to Fedora. What kind of issue are you experiencing? (Feel free to open another issue or email me 😃 )

I'm actually experiencing this on Ubuntu with the exact same issues as above. I didn't look into this properly when I commented -- I'll see if there are errors in the console tomorrow.

Given the report with Ubuntu above, it does not seem related to the linux distribution:
#5 (comment)

Hey guys, mind checking this out with the new release?

If I right-click and paste, instead of trying a ctrl-v in the window, the demo works. Suspect it's just the web client that's having this problem due to changes there.

edit: oops, just saw the fix above. my bad.