Skip to content
New issue

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

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

Already on GitHub? # to your account

Listen mode #584

Closed
erakis opened this issue Feb 29, 2016 · 4 comments
Closed

Listen mode #584

erakis opened this issue Feb 29, 2016 · 4 comments

Comments

@erakis
Copy link

erakis commented Feb 29, 2016

Hi,

It will be great that proxy support the listen mode.

Pretend we already have a connection between the computer HOST (proxy vnc) and a device/computer (TARGET) and we can send a command to the target indicating to connect to the (HOST) on the VNC proxy.This way, we don't have to configure forwarding on router.

Best regards,

@DirectXMan12
Copy link
Member

This looks like it should be filed under websockify, not noVNC. Also, I'm not quite sure I'm understanding what you're requesting here.

@erakis
Copy link
Author

erakis commented Mar 1, 2016

Hi DirectXMan12,

Thank you to having time to respond.

I will try to explain more precisely the feature I'm proposing :

Here is what I understand yet :

  1. When launching the "launch.sh" script, a proxy instance is started and are ready to communicate with a remote (target) device (205.205.205.205) behind a one or many router using the rfb protocol (VNC).
  2. The proxy instance is having the IP (192.168.1.50). Now from a different computer I launch a web browser and point the address on (192.168.2.50)
  3. Now we get the noVNC page :) Next if we click on the connect button, this will force the proxy to connect to the remote device using the rfb protocol and translating protocol on websocket to the client web browser.

Notice that as the device is hosting in a different network and behind one or many router forcing us to configure (port forwarding + firewall) routers to allow the proxy to connect to it. It is not practical :(

So what I'm proposing here is :

Pretend the target device (205.205.205.205) is always connected to the the proxy server (192.168.1.50). This connection is a kind of control channel to send command between them. From the proxy (running on nodejs or anything else) we can send a TCP command to to the target device indicating him to connect to the proxy server using the rfb procool. In the same time the proxy server will open a port to establish the rfb protocol between them. So instead the proxy connect to the remote device, this is the remote device that is connecting to the proxy.

I hope it's a little clearer ;)
Best regards,

@erakis
Copy link
Author

erakis commented Mar 2, 2016

Take a look to the tightvnc, there a listen mode. So it means that it is the remote server that is connecting to the local viewer.

Ref : http://www.tightvnc.com/images/viewer-newconn-help1.png
Ref : http://www.tightvnc.com/winst.php
Add New Client... - This allows outgoing connections to be made from the server to a viewer started in the "listening" mode. The name of the target viewer machine and optional display number can be entered in the dialog. Connections created this way are treated as shared. Such so called "reverse connections" can also be initiated from the command line using the -connect option.

In our case, it means that the remote server (remote device) should initiate the connection to the vnc proxy and the client viewer (from web browser) is connecting to the proxy.

Does it make sens ?

@DirectXMan12
Copy link
Member

Yes, that makes sense.

So, this seems like an issue which should be filed against websockify (https://github.com/kanaka/websockify/), not noVNC. noVNC is just the browser-based client -- the websocket proxy is a different, although related project. This is what launch.sh actually uses to run the proxy.

I'd be willing to consider merging a PR that provided a protocol-agnostic version implementation of this, but it's unlikely that I would have any time to work on this myself.

I'm going to close this issue. If you are still interested, please refile it under Websockify

# for free to join this conversation on GitHub. Already have an account? # to comment
Projects
None yet
Development

No branches or pull requests

2 participants