added compatibilty x2x

This commit is contained in:
2021-09-21 22:43:48 +04:00
parent 78462a7ab1
commit 5b2a36693d
4 changed files with 64 additions and 16 deletions

View File

@@ -24,6 +24,7 @@ type Config struct {
Rooms string Rooms string
IPAddress string IPAddress string
ScriptToExecute string ScriptToExecute string
SSHPassword string
} }
// Exists reports whether the named file or directory exists. // Exists reports whether the named file or directory exists.
@@ -63,6 +64,7 @@ func SetDefaults() error {
defaults["Rooms"] = defaultPath + "room.json" defaults["Rooms"] = defaultPath + "room.json"
defaults["IPAddress"] = "0.0.0.0" defaults["IPAddress"] = "0.0.0.0"
defaults["ScriptToExecute"] = "" defaults["ScriptToExecute"] = ""
defaults["SSHPassword"] = ""
//Paths to search for config file //Paths to search for config file
configPaths = append(configPaths, defaultPath) configPaths = append(configPaths, defaultPath)

View File

@@ -53,7 +53,20 @@ func GetHttp() *http.ServeMux {
return return
} }
fmt.Fprintf(w, configResp.BarrierHostName) fmt.Fprintf(w, configResp.SystemUsername)
})
//Get SSH password of the current machine
server.HandleFunc("/SSHPassword", func(w http.ResponseWriter, r *http.Request) {
// Read hostname from config file
configResp, err := config.ConfigInit()
if err != nil {
print(err)
return
}
fmt.Fprintf(w, configResp.SSHPassword)
}) })
server.HandleFunc("/ws_serve", func(writer http.ResponseWriter, request *http.Request) { server.HandleFunc("/ws_serve", func(writer http.ResponseWriter, request *http.Request) {

View File

@@ -45,18 +45,18 @@
<div class="form-group"> <div class="form-group">
<input id="inputRoomID" type="text" class="form-control form-control-lg text-center" placeholder="Enter room ID" required> <input id="inputRoomID" type="text" class="form-control form-control-lg text-center" placeholder="Enter room ID" required>
</div> </div>
<h4>Connect to Barrier KVM (Beta)</h4> <!-- <h4>Connect to Barrier KVM (Beta)</h4>-->
<p class="help-text"> <!-- <p class="help-text">-->
This is a feature is still on beta testing. This feature will ensure that you can share the keyboard <!-- This is a feature is still on beta testing. This feature will ensure that you can share the keyboard-->
and mouse of the server machine. <!-- and mouse of the server machine.-->
<br> <!-- <br>-->
<span class="text-success font-weight-bold"> Note: This only works if the laplace server has barrierc installed and the room name you are connecting <!-- <span class="text-success font-weight-bold"> Note: This only works if the laplace server has barrierc installed and the room name you are connecting-->
too belongs to the server.</span> <!-- too belongs to the server.</span>-->
</p> <!-- </p>-->
<h6>Host Name: <span id="hostname"> Not detected </span></h6> <!-- <h6>Host Name: <span id="hostname"> Not detected </span></h6>-->
<div class="form-group"> <!-- <div class="form-group">-->
<input id="barrierIP" type="text" class="form-control form-control-lg text-center" placeholder="IPV6 or IPV4 address"> <!-- <input id="barrierIP" type="text" class="form-control form-control-lg text-center" placeholder="IPV6 or IPV4 address">-->
</div> <!-- </div>-->
<button type="submit" class="btn btn-dark btn-block" value="submit">Join</button> <button type="submit" class="btn btn-dark btn-block" value="submit">Join</button>
</form> </form>
</div> </div>
@@ -145,6 +145,18 @@
</div> </div>
<hr> <hr>
<div> <div>
<h4>Use keyboard and mouse</h4>
<p>
Ensure you have an SSH client installed on your machine
</p>
<h4>Run the following command on terminal:</h4>
<p>ssh -XC <span id="Username"></span>@<span id="IP"></span> x2x -west -to :0.0</p>
<p>Password: <span id="SSHPassword"></span></p>
<p class="help-text">
Move your mouse to the west, and you should have access to the other computer.
</p>
<h6>Status</h6> <h6>Status</h6>
<table class="table table-borderless table-sm table-meta"> <table class="table table-borderless table-sm table-meta">
<tr> <tr>

View File

@@ -144,6 +144,9 @@ function initUI() {
LaplaceVar.ui.videoContainer = document.getElementById('video-container'); LaplaceVar.ui.videoContainer = document.getElementById('video-container');
LaplaceVar.ui.barrierIP = document.getElementById('barrierIP'); LaplaceVar.ui.barrierIP = document.getElementById('barrierIP');
LaplaceVar.ui.barrierhostname = document.getElementById('hostname'); LaplaceVar.ui.barrierhostname = document.getElementById('hostname');
LaplaceVar.ui.serverUsername = document.getElementById('Username');
LaplaceVar.ui.serverIP = document.getElementById('IP');
LaplaceVar.ui.SSHPassword = document.getElementById('SSHPassword')
LaplaceVar.headless = { result :"0"}; LaplaceVar.headless = { result :"0"};
LaplaceVar.ui.joinForm.onsubmit = async e => { LaplaceVar.ui.joinForm.onsubmit = async e => {
@@ -197,7 +200,10 @@ function initUI() {
} }
//getting server hostname //getting server hostname
getServerHostName() getServerIPandHostname()
//getting SSHPassword
getSSHPassword()
// Getting query string from the URL // Getting query string from the URL
const queryString = window.location.search; const queryString = window.location.search;
@@ -221,15 +227,29 @@ function initUI() {
// This is so that user can // This is so that user can
// add the host name to connect // add the host name to connect
// to laplace // to laplace
function getServerHostName() { function getServerIPandHostname() {
// Source https://stackoverflow.com/questions/247483/http-get-request-in-javascript // Source https://stackoverflow.com/questions/247483/http-get-request-in-javascript
var xmlHttp = new XMLHttpRequest() var xmlHttp = new XMLHttpRequest()
xmlHttp.open( "GET", getHttpUrl() + "/hostname", false ); // false for synchronous request xmlHttp.open( "GET", getHttpUrl() + "/hostname", false ); // false for synchronous request
xmlHttp.send(null); xmlHttp.send(null);
LaplaceVar.ui.barrierhostname.innerHTML = xmlHttp.responseText //LaplaceVar.ui.barrierhostname.innerHTML = xmlHttp.responseText
LaplaceVar.ui.serverUsername.innerHTML = xmlHttp.responseText
// Server IP address
LaplaceVar.ui.serverIP.innerHTML = window.location.hostname
//console.log(window.location.href.split('?')[0]) //console.log(window.location.href.split('?')[0])
} }
function getSSHPassword() {
// Source https://stackoverflow.com/questions/247483/http-get-request-in-javascript
var xmlHttp = new XMLHttpRequest()
xmlHttp.open( "GET", getHttpUrl() + "/SSHPassword", false ); // false for synchronous request
xmlHttp.send(null);
LaplaceVar.ui.SSHPassword.innerHTML = xmlHttp.responseText
}
function updateStatusUIStream() { function updateStatusUIStream() {
LaplaceVar.status.peers = Object.keys(LaplaceVar.pcs).map(s => s.split('$')[1]); LaplaceVar.status.peers = Object.keys(LaplaceVar.pcs).map(s => s.split('$')[1]);
LaplaceVar.status.numConn = LaplaceVar.status.peers.length; LaplaceVar.status.numConn = LaplaceVar.status.peers.length;
@@ -592,6 +612,7 @@ function routeByUrl() {
function AddRoomID(roomID) { function AddRoomID(roomID) {
document.getElementById('inputRoomID').value = roomID document.getElementById('inputRoomID').value = roomID
} }
function leaveRoom() { function leaveRoom() {
window.location.href = getBaseUrl(); window.location.href = getBaseUrl();
} }