Skip to main content

3.12 – Session Shadowing (join or share an active session on gateway)

Unlimited users can join/share one existed session via one click if you know the session id:
http://www.remotespark.com/join?id=123456789&name=Admin

The input can be controlled by all users or only one of them. User can require control form other user, or give control to other user.

Spark session shadowing has following advantages compared other solutions:

  • Fully based on RDP protocol (no VNC involved), has better performance and using fewer bandwidth.
  • Every joined user can see other user’s mouse movements.
  • Two join mode: Every one can control or only one can control at a time.
  • Even sessions on Windows XP, Windows 7, xrdp can be joined too.
  • Unlimited user can join one session, depends on the ability of you gateway.

RemoteApp session shadowing is also supported since 3.4.

Make sure you have following parts in your web page to make the shadowing work if you are using yourselves customized web page:

var info = $id("joinSelect");
if (info) {
	info.onchange = function(e){
		svManager.getInstance().setJoinMode(e.target.value);
	};
}

var control = $id("requestControl");
if (control) {
	control.onclick = function(e){
		svManager.getInstance().requestControl();
    };
}

<div id="appinfo" class="appdlg">
	<img alt="" src="info.png" style="float:left">
	<table>
		<tr>
        	<td align="right"><b>Connected to:</b></td>
            <td><span id="connectingTo"></span><br></td>
		</tr>
		<tr>
        	<td align="right"><b>Session id:</b></td>
	        <td><span id="numericId"></span><br></td>
        </tr>
		<tr>
        	<td align="right"><b>Join mode:</b></td>
            <td>
				<select id="joinSelect">
					<option value="0">Every one can control</option>
					<option value="1">Only one can control</option>
				</select><br>
			</td>
		</tr>
		<tr>
        	<td colspan="2"><b>Join this session with following link:</b><br><aid="joinLink"target="_blank"></a></td>
		</tr>
		<tr>
        	<td></td>
            <td align="right"><input type="button"id="requestControl"value="Request Control" disabled="disabled"/></td>
		</tr>
	</table>
</div>

To disable session shadowing, you can:

  • Set shadowing = false in gateway.conf
  • Remove following part from the web page (optional):
<table>
	<tr>
       	<td align="right"><b>Connected to:</b></td>
        <td><span id="connectingTo"></span><br></td>
	</tr>
	<tr>
       	<td align="right"><b>Session id:</b></td>
	    <td><span id="numericId"></span><br></td>
    </tr>
	<tr>
       	<td align="right"><b>Join mode:</b></td>
        <td>
			<select id="joinSelect">
				<option value="0">Every one can control</option>
				<option value="1">Only one can control</option>
			</select><br>
		</td>
	</tr>
	<tr>
       	<td colspan="2"><b>Join this session with following link:</b><br><aid="joinLink"target="_blank"></a></td>
	</tr>
	<tr>
       	<td></td>
        <td align="right"><input type="button"id="requestControl"value="Request Control" disabled="disabled"/></td>
	</tr>
</table>

You can also join a symlink if you only know the symlink id, for example:
http://localhost:8080/join.html?symlink=212a155e-e951-40db-95ea-177183174fa7&gateway=wthink&connectif=true

If connectif=true, it will start a new connection if there is no existing connection with the symlink. This only works on symlink joining and you have to enable it by adding following entry in gateway.conf:

connectif = true

If name parameter was given, the name will be displayed under the cursor:

Bildschirmfoto 2022-04-05 um 14.00.32.png

There are two colors under the name: the first is calculated by the name, the second is calculated by the session id which makes sure every user has a unique color combination.

Using session shadowing

As an user, click the "i" symbol on your desktop: Unbenannt.png

You will see an info window with a session ID, a join mode and a session link: Unbenannt2.png