mirror of
https://github.com/4ian/GDevelop.git
synced 2025-10-15 10:19:04 +00:00
Add option to use own server
This commit is contained in:
@@ -6,10 +6,15 @@
|
||||
* @namespace
|
||||
*/
|
||||
gdjs.evtTools.p2p = {
|
||||
/**
|
||||
* The peer to peer configuration.
|
||||
*/
|
||||
peerConfig: {debug:1},
|
||||
|
||||
/**
|
||||
* The p2p client.
|
||||
*/
|
||||
peer: new Peer({debug: 1}), // Enable logging of critical errors
|
||||
peer: null, // Enable logging of critical errors
|
||||
|
||||
/**
|
||||
* All connected p2p clients, keyed by their id.
|
||||
@@ -27,6 +32,13 @@ gdjs.evtTools.p2p = {
|
||||
lastEventData: {},
|
||||
}
|
||||
|
||||
gdjs.evtTools.p2p._reloadPeerJS = function() {
|
||||
gdjs.evtTools.p2p.peer = new Peer(gdjs.evtTools.p2p.peerConfig)
|
||||
gdjs.evtTools.p2p.peer.on("connection", gdjs.evtTools.p2p._onConnection);
|
||||
gdjs.evtTools.p2p.peer.on("close", gdjs.evtTools.p2p._reloadPeerJS);
|
||||
gdjs.evtTools.p2p.peer.on("disconnected", gdjs.evtTools.p2p.peer.reconnect);
|
||||
}
|
||||
|
||||
gdjs.evtTools.p2p._onConnection = function(connection) {
|
||||
gdjs.evtTools.p2p.connections[connection.peer] = connection;
|
||||
connection.on("data", function(data) {
|
||||
@@ -123,7 +135,33 @@ gdjs.evtTools.p2p.getEventVariable = function(eventName, variable) {
|
||||
gdjs.evtTools.network.jsonToVariableStructure(gdjs.evtTools.p2p.lastEventData[eventName], variable);
|
||||
}
|
||||
|
||||
/**
|
||||
* Connects to a custom broker server.
|
||||
* @param {string} host The host of the broker server
|
||||
* @param {number} port
|
||||
* @param {string} path The path (part of the url after the host) to the broker server
|
||||
* @param {string} [key] Optional password to connect to the broker server
|
||||
* @param {boolean} ssl Use ssl?
|
||||
*/
|
||||
gdjs.evtTools.p2p.useCustomBrokerServer = function(host, port, path, key, ssl) {
|
||||
key = key.length === 0 ? "peerjs" : key; // All servers have "peerjs" as default key
|
||||
gdjs.evtTools.p2p.peerConfig = {
|
||||
debug: 1,
|
||||
host,
|
||||
port,
|
||||
path,
|
||||
secure: ssl,
|
||||
key,
|
||||
};
|
||||
gdjs.evtTools.p2p._reloadPeerJS();
|
||||
}
|
||||
|
||||
gdjs.evtTools.p2p.getCurrentId = function() {return gdjs.evtTools.p2p.peer.id || "";}
|
||||
|
||||
|
||||
gdjs.evtTools.p2p.peer.on("connection", gdjs.evtTools.p2p._onConnection);
|
||||
// Initialize PeerJS after running the events a first time to let the user select another server
|
||||
gdjs.evtTools.p2p._callback = function() {
|
||||
gdjs.evtTools.p2p._reloadPeerJS();
|
||||
var index = gdjs.callbacksRuntimeScenePostEvents.indexOf(gdjs.evtTools.p2p._callback);
|
||||
gdjs.callbacksRuntimeScenePostEvents.splice(index, 1);
|
||||
}
|
||||
gdjs.callbacksRuntimeScenePostEvents.push(gdjs.evtTools.p2p._callback);
|
||||
|
@@ -65,6 +65,26 @@ module.exports = {
|
||||
.addIncludeFile('Extensions/P2P/B_p2ptools.js')
|
||||
.setFunctionName('gdjs.evtTools.p2p.connect');
|
||||
|
||||
extension
|
||||
.addAction(
|
||||
'UseOwnBroker',
|
||||
_('Connect to own broker server'),
|
||||
_('Connects to your own broker server.'),
|
||||
_('Connect to broker server http://_PARAM0_:_PARAM1_/'),
|
||||
_('P2P (experimental)'),
|
||||
'JsPlatform/Extensions/p2picon.svg',
|
||||
'JsPlatform/Extensions/p2picon.svg'
|
||||
)
|
||||
.addParameter('string', _('Host'), '', false)
|
||||
.addParameter('number', _('Port'), '', false)
|
||||
.addParameter('string', _('Path'), '', false)
|
||||
.addParameter('string', _('Key'), '', false)
|
||||
.addParameter('yesorno', _('SSl enabled?'), '', false)
|
||||
.getCodeExtraInformation()
|
||||
.setIncludeFile('Extensions/P2P/A_peer.js')
|
||||
.addIncludeFile('Extensions/P2P/B_p2ptools.js')
|
||||
.setFunctionName('gdjs.evtTools.p2p.useCustomBrokerServer');
|
||||
|
||||
extension
|
||||
.addAction(
|
||||
'SendToAll',
|
||||
|
Reference in New Issue
Block a user