simple chat with socket.io
Este commit está contenido en:
@@ -1,6 +1,7 @@
|
||||
const http = require('http'),
|
||||
express = require('express'),
|
||||
app = express(),
|
||||
io = require('socket.io'),
|
||||
geoip = require('geoip-lite'),
|
||||
morgan = require('morgan'),
|
||||
compression = require('compression'),
|
||||
@@ -12,7 +13,9 @@ const http = require('http'),
|
||||
}),
|
||||
server = http.createServer(app).listen(8080, () => {
|
||||
console.log(`Listening on ${server.address().address}:${server.address().port}`)
|
||||
})
|
||||
}),
|
||||
socketio = io(server),
|
||||
chatusers = []
|
||||
|
||||
app.disable('x-powered-by')
|
||||
.use(compression({ level: 9 }))
|
||||
@@ -23,4 +26,34 @@ app.disable('x-powered-by')
|
||||
res.json(geoip.lookup(req.body.ip))
|
||||
}
|
||||
})
|
||||
.use(express.static(__dirname + '/public'))
|
||||
.use(express.static(__dirname + '/public'))
|
||||
|
||||
socketio.on('connection', socket => {
|
||||
socket.on('emit msg', msg => {
|
||||
if (msg.user && msg.chat)
|
||||
socket.broadcast.emit('msg', { user: msg.user, chat: msg.chat })
|
||||
})
|
||||
.on('register', data => {
|
||||
if (data.user)
|
||||
if (chatusers.indexOf(data.user) === -1) {
|
||||
chatusers.push(data.user)
|
||||
socket.user = data.user
|
||||
socket.emit('users', { users: chatusers })
|
||||
socket.broadcast.emit('adduser', { user: data.user })
|
||||
socketio.emit('join', { user: data.user })
|
||||
} else {
|
||||
socket.emit('rejoin', { user: data.user })
|
||||
}
|
||||
})
|
||||
.on('disconnecting', () => {
|
||||
if (socket.user && chatusers.indexOf(socket.user) !== -1) {
|
||||
chatusers.splice(chatusers.indexOf(socket.user), 1)
|
||||
socketio.emit('quit', { msg: `QUITS ${socket.user}` })
|
||||
}
|
||||
socket.emit('users', { users: [] })
|
||||
socket.broadcast.emit('users', { users: chatusers })
|
||||
socket.emit('disconnectuser')
|
||||
socket.removeAllListeners()
|
||||
socket.disconnect()
|
||||
})
|
||||
})
|
||||
@@ -4,7 +4,7 @@
|
||||
"description": "",
|
||||
"main": "index.js",
|
||||
"scripts": {
|
||||
"install": "browserify -r p2p-graph | terser -m -c > public/js/p2p-graph.js && cp node_modules/clappr/dist/clappr.min.js node_modules/hls.js/dist/hls.min.js node_modules/level-selector/dist/level-selector.min.js node_modules/p2p-media-loader-hlsjs/build/p2p-media-loader-hlsjs.min.js node_modules/p2p-media-loader-core/build/p2p-media-loader-core.min.js public/js/ && cp node_modules/ipfs/dist/index.min.js public/js/ipfs.min.js && cp node_modules/hlsjs-ipfs-loader/dist/index.min.js public/js/hlsjs-ipfs-loader.min.js"
|
||||
"install": "browserify -r p2p-graph | terser -m -c > public/js/p2p-graph.js && cp node_modules/clappr/dist/clappr.min.js node_modules/hls.js/dist/hls.min.js node_modules/level-selector/dist/level-selector.min.js node_modules/p2p-media-loader-hlsjs/build/p2p-media-loader-hlsjs.min.js node_modules/p2p-media-loader-core/build/p2p-media-loader-core.min.js node_modules/socket.io-client/dist/socket.io.min.js* public/js/ && cp node_modules/ipfs/dist/index.min.js public/js/ipfs.min.js && cp node_modules/hlsjs-ipfs-loader/dist/index.min.js public/js/hlsjs-ipfs-loader.min.js"
|
||||
},
|
||||
"author": "ale",
|
||||
"license": "MIT",
|
||||
@@ -23,6 +23,8 @@
|
||||
"p2p-media-loader-core": "*",
|
||||
"p2p-media-loader-hlsjs": "*",
|
||||
"rotating-file-stream": "*",
|
||||
"socket.io": "*",
|
||||
"socket.io-client": "*",
|
||||
"terser": "*"
|
||||
}
|
||||
}
|
||||
|
||||
@@ -192,4 +192,32 @@ body {
|
||||
|
||||
#main-view .hide {
|
||||
display: none;
|
||||
}
|
||||
|
||||
#chat {
|
||||
text-align: center;
|
||||
padding: 0.2rem;
|
||||
border: solid 1px#eee;
|
||||
}
|
||||
|
||||
#userschat {
|
||||
padding-right: 0.2rem;
|
||||
float: right;
|
||||
}
|
||||
|
||||
#chats, #users {
|
||||
list-style: none;
|
||||
text-align: left;
|
||||
padding-left: 0.5rem;
|
||||
}
|
||||
|
||||
#chats {
|
||||
width: 75%;
|
||||
height: 200px;
|
||||
overflow: scroll;
|
||||
}
|
||||
|
||||
a, a:hover, a:visited {
|
||||
text-decoration: none;
|
||||
color: black;
|
||||
}
|
||||
@@ -5,7 +5,8 @@
|
||||
<meta charset="UTF-8">
|
||||
<title>P2P</title>
|
||||
<meta name="viewport" content="width=device-width, initial-scale=1.0" />
|
||||
<link type="text/css" rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/rickshaw/1.6.3/rickshaw.min.css">
|
||||
<link type="text/css" rel="stylesheet"
|
||||
href="https://cdnjs.cloudflare.com/ajax/libs/rickshaw/1.6.3/rickshaw.min.css">
|
||||
<link type="text/css" rel="stylesheet" href="css/main.css">
|
||||
<script src="js/p2p-media-loader-core.min.js"></script>
|
||||
<script src="js/p2p-media-loader-hlsjs.min.js"></script>
|
||||
@@ -14,13 +15,14 @@
|
||||
<script src="https://cdnjs.cloudflare.com/ajax/libs/d3/3.5.17/d3.min.js"></script>
|
||||
<script async src="https://cdnjs.cloudflare.com/ajax/libs/rickshaw/1.6.3/rickshaw.min.js"></script>
|
||||
<script src="js/p2p-graph.js"></script>
|
||||
<script src="js/socket.io.min.js"></script>
|
||||
<script src="js/main.js"></script>
|
||||
</head>
|
||||
|
||||
<body>
|
||||
<div class="container">
|
||||
<header class="main-header">
|
||||
<h2 class="title">P2P - HatThieves</h2>
|
||||
<h2 class="title">P2P</h2>
|
||||
</header>
|
||||
|
||||
<div id="main-view">
|
||||
@@ -35,12 +37,6 @@
|
||||
Source Extensions</a>.
|
||||
<hr>
|
||||
</div>
|
||||
<div id="error-shakaplayer" class="hide">
|
||||
Your browser doesn't support Shaka Player engine. P2P disabled.<br>
|
||||
Read more at <a href="https://en.wikipedia.org/wiki/Media_Source_Extensions" target="_blank">Media
|
||||
Source Extensions</a>.
|
||||
<hr>
|
||||
</div>
|
||||
<div class="wrapper">
|
||||
<div class="column-1">
|
||||
<div id="video_container"></div>
|
||||
@@ -53,10 +49,65 @@
|
||||
</div>
|
||||
<div class="column-2">
|
||||
<div id="graph"></div>
|
||||
<div id="chat">
|
||||
<h4>Chat - <span id="me">Me</span></h4>
|
||||
<div id="userschat">
|
||||
<h4>Users</h4>
|
||||
<ul id="users"></ul>
|
||||
</div>
|
||||
<input id="chatbox" type="text" placeholder="Tell something..." name="chatbox" />
|
||||
<button class="button"
|
||||
onclick="window.sendChat(document.getElementById('chatbox').value)">Send</button>
|
||||
<ul id="chats"></ul>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<div>
|
||||
<ul>
|
||||
<li><a rel="noreferrer noopener"
|
||||
href="https://p2p.manalejandro.com/?url=https://peertube.manalejandro.com/static/streaming-playlists/hls/b1b18a0b-3298-4415-95ad-be888444745d/1080.m3u8"
|
||||
target="_blank">Taller LineageOS – 0x00 – HatThieves by Punk</a></li>
|
||||
<li><a rel="noreferrer noopener"
|
||||
href="https://p2p.manalejandro.com/?url=https://peertube.manalejandro.com/static/streaming-playlists/hls/0135b789-aa34-4137-9e47-1a1ae4d41f16/1080.m3u8"
|
||||
target="_blank">Taller IA – 0x01 – HatThieves by Gore</a></li>
|
||||
<li><a rel="noreferrer noopener"
|
||||
href="https://p2p.manalejandro.com/?url=https://peertube.manalejandro.com/static/streaming-playlists/hls/64fd4044-4fec-4829-bc4e-841a0a2c0c76/480.m3u8"
|
||||
target="_blank">Taller Yunohost – 0x02 – HatThieves by Xaloc</a></li>
|
||||
<li><a rel="noreferrer noopener"
|
||||
href="https://p2p.manalejandro.com/?url=https://peertube.manalejandro.com/static/streaming-playlists/hls/46d82d63-576e-4ce2-b77a-9b0a6d873f05/480.m3u8"
|
||||
target="_blank">Debate Fediverso – 0x03 – HatThieves by barcelona.social</a></li>
|
||||
<li><a rel="noreferrer noopener"
|
||||
href="https://p2p.manalejandro.com/?url=https://peertube.manalejandro.com/static/streaming-playlists/hls/6dae99f0-84c7-463f-b24c-44893a0ab388/1080.m3u8"
|
||||
target="_blank">Taller OpenData – 0x04 – HatThieves by @jagedn</a></li>
|
||||
<li><a rel="noreferrer noopener"
|
||||
href="https://p2p.manalejandro.com/?url=https://peertube.manalejandro.com/static/streaming-playlists/hls/9651e144-67a9-482a-94db-0fe3850d4f91/720.m3u8"
|
||||
target="_blank">Taller Hardware Libre – 0x05 – HatThieves by @terceranexus6</a></li>
|
||||
<li><a rel="noreferrer noopener"
|
||||
href="https://p2p.manalejandro.com/?url=https://peertube.manalejandro.com/static/streaming-playlists/hls/1d44376c-7551-4355-ae51-70a7784d5eef/720.m3u8"
|
||||
target="_blank">Taller de Docker – 0x06 – HatThieves by @ale</a></li>
|
||||
<li><a rel="noreferrer noopener"
|
||||
href="https://p2p.manalejandro.com/?url=https://peertube.manalejandro.com/static/streaming-playlists/hls/6b548068-f50b-4346-85f9-861e59bfe6a1/720.m3u8"
|
||||
target="_blank">Taller de Altair – 0x07 – HatThieves by @jebug29</a></li>
|
||||
<li><a rel="noreferrer noopener"
|
||||
href="https://p2p.manalejandro.com/?url=https://peertube.manalejandro.com/static/streaming-playlists/hls/ed2f2be6-4abd-4692-9b50-ba263179e80c/720.m3u8"
|
||||
target="_blank">Taller de Git – 0x08 – HatThieves by @jordila</a></li>
|
||||
<li><a rel="noreferrer noopener"
|
||||
href="https://p2p.manalejandro.com/?url=https://peertube.manalejandro.com/static/streaming-playlists/hls/b39ae337-4565-4173-ad81-0e719d4e1991/480.m3u8"
|
||||
target="_blank">DomingoNegro – 0x09 – Ubuntu Peronista by @peron</a></li>
|
||||
<li><a href="https://p2p.manalejandro.com/?url=https://peertube.manalejandro.com/static/streaming-playlists/hls/148d8847-6bc1-4d2b-9265-03c430771958/720.m3u8"
|
||||
target="_blank" rel="noreferrer noopener">DomingoNegro – 0x0A – Godot Engine by
|
||||
@puppetmaster</a></li>
|
||||
</ul>
|
||||
<p>RTVE: <a href="https://p2p.manalejandro.com/?url=https://rtvelivestream-lvlt.rtve.es/la1_dvr.m3u8"
|
||||
target="_blank" rel="noreferrer noopener">LA1</a>
|
||||
<a href="https://p2p.manalejandro.com/?url=https://hlsliveamdgl1-lh.akamaihd.net/i/hlsdvrlive_1@60414/master.m3u8"
|
||||
target="_blank" rel="noreferrer noopener">LA2</a>
|
||||
<a href="https://p2p.manalejandro.com/?url=https://rtvelivestream-lvlt.rtve.es/24h.m3u8" target="_blank"
|
||||
rel="noreferrer noopener">24H</a>
|
||||
</p>
|
||||
</div>
|
||||
</div>
|
||||
</body>
|
||||
|
||||
</html>
|
||||
</html>
|
||||
@@ -45,7 +45,7 @@ function loadScript(src) {
|
||||
|
||||
class App {
|
||||
async init() {
|
||||
await waitForGlobalObject("p2pml", "core", "Ipfs", "HlsjsIpfsLoader", "Hls");
|
||||
await waitForGlobalObject("p2pml", "core")
|
||||
|
||||
this.isP2PSupported = p2pml.core.HybridLoader.isSupported();
|
||||
if (!this.isP2PSupported) {
|
||||
@@ -54,19 +54,78 @@ class App {
|
||||
|
||||
var params = (new URL(document.location)).searchParams;
|
||||
|
||||
this.videoUrl = params.get('url') ? params.get('url') : 'https://hls.hatthieves.es/hls/streaming.m3u8';
|
||||
this.videoUrl = params.get('url') ? params.get('url') : 'https://rtvelivestream-lvlt.rtve.es/la1_dvr.m3u8';
|
||||
this.videoContainer = document.getElementById("video_container");
|
||||
|
||||
this.loadSpeedTimespan = 10; // seconds
|
||||
|
||||
const P2PGraphClass = await waitForModule("p2p-graph");
|
||||
this.graph = new P2PGraphClass("#graph");
|
||||
this.graph.add({ id: "me", name: "Tú", me: true });
|
||||
this.graph.add({ id: "me", name: "You", me: true });
|
||||
|
||||
await waitForGlobalObject("Rickshaw");
|
||||
|
||||
this.initChart();
|
||||
|
||||
while (!window.name || window.name === 'null') {
|
||||
window.name = window.prompt('Who are you?') || '';
|
||||
}
|
||||
if (window.name) {
|
||||
var socket = io(),
|
||||
createLi = function (tag, content) {
|
||||
var li = document.createElement('li')
|
||||
li.innerText = content
|
||||
document.getElementById(tag).appendChild(li)
|
||||
};
|
||||
socket.on('rejoin', function (data) {
|
||||
delete window.name
|
||||
while (!window.name || window.name === 'null') {
|
||||
window.name = window.prompt('Who are you?') || ''
|
||||
}
|
||||
socket.emit('register', { user: window.name })
|
||||
})
|
||||
socket.on('join', function (data) {
|
||||
createLi('chats', 'JOINS ' + data.user)
|
||||
})
|
||||
socket.on('msg', function (data) {
|
||||
createLi('chats', data.user + ': ' + data.chat)
|
||||
})
|
||||
socket.on('adduser', function (data) {
|
||||
createLi('users', data.user)
|
||||
})
|
||||
socket.on('users', function (data) {
|
||||
data.users.map(user => createLi('users', user))
|
||||
})
|
||||
socket.on('quit', function (data) {
|
||||
createLi('chats', data.msg)
|
||||
})
|
||||
socket.on('disconnectuser', function (event) {
|
||||
socket.removeAllListeners()
|
||||
socket.disconnect()
|
||||
})
|
||||
socket.on('error', function (err) {
|
||||
window.alert(err)
|
||||
})
|
||||
window.sendChat = function (chat) {
|
||||
if (chat) {
|
||||
socket.emit('emit msg', { user: window.name, chat: chat })
|
||||
createLi('chats', window.name + ': ' + chat)
|
||||
document.getElementById('chatbox').value = ''
|
||||
document.getElementById('chats').scrollTo(0,document.getElementById('chats').scrollHeight)
|
||||
}
|
||||
}
|
||||
document.getElementById('chatbox').addEventListener('keydown', function (event) {
|
||||
if (event.keyCode === 13 || event.which === 13) {
|
||||
window.sendChat(document.getElementById('chatbox').value)
|
||||
}
|
||||
})
|
||||
socket.emit('register', { user: window.name })
|
||||
document.getElementById('me').innerText = window.name
|
||||
} else {
|
||||
this.engine.destroy();
|
||||
window.alert('You have been disconnect');
|
||||
}
|
||||
|
||||
this.restartApp();
|
||||
}
|
||||
|
||||
@@ -82,13 +141,238 @@ class App {
|
||||
|
||||
const config = {
|
||||
loader: {
|
||||
trackerAnnounce: 'wss://p2p.hatthieves.es/ws'
|
||||
trackerAnnounce: 'wss://p2p.manalejandro.com/ws'
|
||||
},
|
||||
rtcConfig: {
|
||||
iceServers: [
|
||||
{ urls: "stuns:hatthieves.es:3479" },
|
||||
{ urls: "stun:hatthieves.es:3478" }
|
||||
]
|
||||
iceServers: [{
|
||||
urls: [
|
||||
"stun:stun.rixtelecom.se:3478",
|
||||
"stun:stun.wwdl.net:3478",
|
||||
"stun:stun.bmwgs.cz:3478",
|
||||
"stun:stun.annatel.net:3478",
|
||||
"stun:stun.bahnhof.net:3478",
|
||||
"stun:stun.sippeer.dk:3478",
|
||||
"stun:stun.jumblo.com:3478",
|
||||
"stun:stun.barracuda.com:3478",
|
||||
"stun:stun.powervoip.com:3478",
|
||||
"stun:stun.12connect.com:3478",
|
||||
"stun:stun.srce.hr:3478",
|
||||
"stun:stun.noblogs.org:3478",
|
||||
"stun:stun.voipzoom.com:3478",
|
||||
"stun:stun.sipdiscount.com:3478",
|
||||
"stun:stun.sovtest.ru:3478",
|
||||
"stun:stun.nottingham.ac.uk:3478",
|
||||
"stun:stun.rb-net.com:3478",
|
||||
"stun:stun.voipgain.com:3478",
|
||||
"stun:stun.sipnet.net:3478",
|
||||
"stun:stun.qq.com:3478",
|
||||
"stun:stun.voicetrading.com:3478",
|
||||
"stun:stun.powerpbx.org:3478",
|
||||
"stun:stun.services.mozilla.com:3478",
|
||||
"stun:stun.rackco.com:3478",
|
||||
"stun:stun.budgetsip.com:3478",
|
||||
"stun:stun.comfi.com:3478",
|
||||
"stun:stun.speedy.com.ar:3478",
|
||||
"stun:stun.etoilediese.fr:3478",
|
||||
"stun:stun.3clogic.com:3478",
|
||||
"stun:stun.antisip.com:3478",
|
||||
"stun:stun.hellonanu.com:3478",
|
||||
"stun:stun.tng.de:3478",
|
||||
"stun:stun.ssl7.net:3478",
|
||||
"stun:stun.intervoip.com:3478",
|
||||
"stun:stun.voipfibre.com:3478",
|
||||
"stun:stun.yesss.at:3478",
|
||||
"stun:stun.rynga.com:3478",
|
||||
"stun:stun.gradwell.com:3478",
|
||||
"stun:stun.rockenstein.de:3478",
|
||||
"stun:stun.personal-voip.de:3478",
|
||||
"stun:stun.2talk.com:3478",
|
||||
"stun:stun.spokn.com:3478",
|
||||
"stun:stun.dingaling.ca:3478",
|
||||
"stun:stun.dus.net:3478",
|
||||
"stun:stun.avigora.fr:3478",
|
||||
"stun:stun.vyke.com:3478",
|
||||
"stun:stun.stunprotocol.org:3478",
|
||||
"stun:stun.bluesip.net:3478",
|
||||
"stun:stun.xs4all.nl:3478",
|
||||
"stun:stun.smartvoip.com:3478",
|
||||
"stun:stun.sipnet.ru:3478",
|
||||
"stun:stun.ideasip.com:3478",
|
||||
"stun:stun.myvoiptraffic.com:3478",
|
||||
"stun:stun.kanet.ru:3478",
|
||||
"stun:stun.ooonet.ru:3478",
|
||||
"stun:stun.softjoys.com:3478",
|
||||
"stun:stun.modulus.gr:3478",
|
||||
"stun:stun.vopium.com:3478",
|
||||
"stun:stun.solcon.nl:3478",
|
||||
"stun:stun.vodafone.ro:3478",
|
||||
"stun:stun.solnet.ch:3478",
|
||||
"stun:stun3.l.google.com:19302",
|
||||
"stun:stun.aeta-audio.com:3478",
|
||||
"stun:stun.siptraffic.com:3478",
|
||||
"stun:stun.voip.eutelia.it:3478",
|
||||
"stun:stun.l.google.com:19302",
|
||||
"stun:stun.ekiga.net:3478",
|
||||
"stun:stun.mit.de:3478",
|
||||
"stun:stun4.l.google.com:19302",
|
||||
"stun:stun.snafu.de:3478",
|
||||
"stun:stun.demos.ru:3478",
|
||||
"stun:stun.twt.it:3478",
|
||||
"stun:stun.1und1.de:3478",
|
||||
"stun:stun.1und1.de:3478",
|
||||
"stun:stun.ozekiphone.com:3478",
|
||||
"stun:stun.sonetel.com:3478",
|
||||
"stun:stun.nas.net:3478",
|
||||
"stun:stun.cheapvoip.com:3478",
|
||||
"stun:stun.magnet.ie:3478",
|
||||
"stun:stun.viva.gr:3478",
|
||||
"stun:stun.veoh.com:3478",
|
||||
"stun:stun.awa-shima.com:3478",
|
||||
"stun:stun.halonet.pl:3478",
|
||||
"stun:stun.xtratelecom.es:3478",
|
||||
"stun:stun.counterpath.net:3478",
|
||||
"stun:stun.ipfire.org:3478",
|
||||
"stun:stun.siportal.it:3478",
|
||||
"stun:stun.netgsm.com.tr:3478",
|
||||
"stun:stun.ciktel.com:3478",
|
||||
"stun:stun.internetcalls.com:3478",
|
||||
"stun:stun.voipinfocenter.com:3478",
|
||||
"stun:stun.vidyo.com:3478",
|
||||
"stun:stun.voiparound.com:3478",
|
||||
"stun:stun.mgn.ru:3478",
|
||||
"stun:stun.voip.aebc.com:3478",
|
||||
"stun:stun.irian.at:3478",
|
||||
"stun:stun.voippro.com:3478",
|
||||
"stun:stun.altar.com.pl:3478",
|
||||
"stun:numb.viagenie.ca:3478",
|
||||
"stun:stun.tel.lu:3478",
|
||||
"stun:stun.liveo.fr:3478",
|
||||
"stun:stun.tagan.ru:3478",
|
||||
"stun:stun.chathelp.ru:3478",
|
||||
"stun:stun.arbuz.ru:3478",
|
||||
"stun:stun.wifirst.net:3478",
|
||||
"stun:stun.advfn.com:3478",
|
||||
"stun:stun.voipgate.com:3478",
|
||||
"stun:stun.comtube.ru:3478",
|
||||
"stun:stun.freevoipdeal.com:3478",
|
||||
"stun:stun.vipgroup.net:3478",
|
||||
"stun:stun.lundimatin.fr:3478",
|
||||
"stun:stun.t-online.de:3478",
|
||||
"stun:stun.miwifi.com:3478",
|
||||
"stun:stun.lowratevoip.com:3478",
|
||||
"stun:stun.zadv.com:3478",
|
||||
"stun:stun.linea7.net:3478",
|
||||
"stun:stun.freeswitch.org:3478",
|
||||
"stun:stun.cloopen.com:3478",
|
||||
"stun:stun.voipcheap.com:3478",
|
||||
"stun:stun.sip.us:3478",
|
||||
"stun:stun.noc.ams-ix.net:3478",
|
||||
"stun:stun.poivy.com:3478",
|
||||
"stun:stun.gmx.net:3478",
|
||||
"stun:stun.vo.lu:3478",
|
||||
"stun:stun.easycall.pl:3478",
|
||||
"stun:stun.callromania.ro:3478",
|
||||
"stun:stun.vivox.com:3478",
|
||||
"stun:stun.zoiper.com:3478",
|
||||
"stun:stun2.l.google.com:19302",
|
||||
"stun:stun.dcalling.de:3478",
|
||||
"stun:stun.aa.net.uk:3478",
|
||||
"stun:stun.rolmail.net:3478",
|
||||
"stun:stun.acrobits.cz:3478",
|
||||
"stun:stun.voipwise.com:3478",
|
||||
"stun:iphone-stun.strato-iphone.de:3478",
|
||||
"stun:stun.sipgate.net:10000",
|
||||
"stun:stun.zadarma.com:3478",
|
||||
"stun:stun.easyvoip.com:3478",
|
||||
"stun:stun.voipraider.com:3478",
|
||||
"stun:stun.uls.co.za:3478",
|
||||
"stun:stun.linphone.org:3478",
|
||||
"stun:stun.unseen.is:3478",
|
||||
"stun:stun.cope.es:3478",
|
||||
"stun:stun.schlund.de:3478",
|
||||
"stun:stun.hosteurope.de:3478",
|
||||
"stun:stun.voipstunt.com:3478",
|
||||
"stun:stun.3cx.com:3478",
|
||||
"stun:stun.voys.nl:3478",
|
||||
"stun:stun.whoi.edu:3478",
|
||||
"stun:stun.voipbuster.com:3478",
|
||||
"stun:stun.skylink.ru:3478",
|
||||
"stun:stun.develz.org:3478",
|
||||
"stun:stun.voxox.com:3478",
|
||||
"stun:stun.vline.com:3478",
|
||||
"stun:stun.callwithus.com:3478",
|
||||
"stun:stun.nonoh.net:3478",
|
||||
"stun:stun.u-blox.com:3478",
|
||||
"stun:stun.symplicity.com:3478",
|
||||
"stun:stun.voipplanet.nl:3478",
|
||||
"stun:stun.ipshka.com:3478",
|
||||
"stun:stun.12voip.com:3478",
|
||||
"stun:stun.phone.com:3478",
|
||||
"stun:stun.2talk.co.nz:3478",
|
||||
"stun:stun.telbo.com:3478",
|
||||
"stun:stun.cablenet-as.net:3478",
|
||||
"stun:stun.doublerobotics.com:3478",
|
||||
"stun:stun.voztele.com:3478",
|
||||
"stun:stun.a-mm.tv:3478",
|
||||
"stun:stun.b2b2c.ca:3478",
|
||||
"stun:stun.datamanagement.it:3478",
|
||||
"stun:stun1.voiceeclipse.net:3478",
|
||||
"stun:stun1.faktortel.com.au:3478",
|
||||
"stun:stun.voipblast.com:3478",
|
||||
"stun:stun.ucsb.edu:3478",
|
||||
"stun:stun.ucw.cz:3478",
|
||||
"stun:stun.voipcheap.co.uk:3478",
|
||||
"stun:stun.actionvoip.com:3478",
|
||||
"stun:stun.sigmavoip.com:3478",
|
||||
"stun:stun.kiwilink.co.nz:3478",
|
||||
"stun:stun.ipcomms.net:3478",
|
||||
"stun:stun.faktortel.com.au:3478",
|
||||
"stun:stun.voipbusterpro.com:3478",
|
||||
"stun:stun.on.net.mk:3478",
|
||||
"stun:stun.botonakis.com:3478",
|
||||
"stun:stun.comtube.com:3478",
|
||||
"stun:stun.lugosoft.com:3478",
|
||||
"stun:stun.smsdiscount.com:3478",
|
||||
"stun:stun.sipgate.net:3478",
|
||||
"stun:stun.gmx.de:3478",
|
||||
"stun:stun.oriontelekom.rs:3478",
|
||||
"stun:stun.ivao.aero:3478",
|
||||
"stun:stun.hoiio.com:3478",
|
||||
"stun:stun.infra.net:3478",
|
||||
"stun:stun.gmx.net:3478",
|
||||
"stun:stun.webcalldirect.com:3478",
|
||||
"stun:stun.it1.hr:3478",
|
||||
"stun:stun.nova.is:3478",
|
||||
"stun:stun.symform.com:3478",
|
||||
"stun:stun.sma.de:3478",
|
||||
"stun:stun.siplogin.de:3478",
|
||||
"stun:stun.sonetel.net:3478",
|
||||
"stun:stun.outland-net.de:3478",
|
||||
"stun:stunserver.org:3478",
|
||||
"stun:stun.counterpath.com:3478",
|
||||
"stun:stun.telefacil.com:3478",
|
||||
"stun:stun.freecall.com:3478",
|
||||
"stun:stun.teachercreated.com:3478",
|
||||
"stun:stun1.l.google.com:19302",
|
||||
"stun:23.21.150.121:3478",
|
||||
"stun:stun.epygi.com:3478",
|
||||
"stun:stun.ippi.fr:3478",
|
||||
"stun:stun.netappel.com:3478",
|
||||
"stun:stun.usfamily.net:3478",
|
||||
"stun:stun.neotel.co.za:3478",
|
||||
"stun:stun.mywatson.it:3478",
|
||||
"stun:stun.pjsip.org:3478",
|
||||
"stun:stun.justvoip.com:3478",
|
||||
"stun:stun.ppdi.com:3478",
|
||||
"stun:stun.rapidnet.de:3478",
|
||||
"stun:stun.voip.blackberry.com:3478",
|
||||
"stun:stun.commpeak.com:3478",
|
||||
"stun:stun.mitake.com.tw:3478",
|
||||
"stun:stun.nfon.net:3478",
|
||||
"stun:stun.aeta.com:3478",
|
||||
"stun:stun.ooma.com:3478"
|
||||
]
|
||||
}]
|
||||
}
|
||||
};
|
||||
|
||||
@@ -131,12 +415,12 @@ class App {
|
||||
source: params.get('key') && params.get('key').length > 0 ? params.get('key') : this.videoUrl,
|
||||
width: "100%",
|
||||
height: "100%",
|
||||
muted: false,
|
||||
mute: true,
|
||||
autoPlay: true,
|
||||
poster: 'https://www.hatthieves.es/wp-content/uploads/2020/04/cropped-blackground3-2.jpg',
|
||||
poster: 'https://ale.manalejandro.com/p/https/mastodon.madrid/system/accounts/avatars/000/056/178/original/96031eae577ed94c.jpg',
|
||||
playbackNotSupportedMessage: 'Play is not supported',
|
||||
watermark: 'https://www.hatthieves.es/wp-content/uploads/2019/08/cropped-ht.png', position: 'top-left',
|
||||
watermarkLink: 'https://www.hatthieves.es',
|
||||
watermark: 'https://ale.manalejandro.com/p/https/mastodon.madrid/system/accounts/avatars/000/056/178/original/96031eae577ed94c.jpg', position: 'top-left',
|
||||
watermarkLink: 'https://p2p.manalejandro.com',
|
||||
mediacontrol: { seekbar: "#ffffff", buttons: "#ffffff" },
|
||||
playback: { playInline: true, preload: true, maxBufferLength: 30 }
|
||||
};
|
||||
@@ -154,15 +438,17 @@ class App {
|
||||
ipfs: node,
|
||||
ipfsHash: ipfsHash
|
||||
};
|
||||
} else {
|
||||
setup.playback.hlsjsConfig = {
|
||||
// liveSyncDurationCount: 7,
|
||||
loader: this.isP2PSupported ? this.engine.createLoaderClass() : Hls.DefaultConfig.loader
|
||||
};
|
||||
}
|
||||
if (params.get('key') && params.get('key').length > 0 || setup.source === 'index.m3u8') {
|
||||
document.getElementById('chart_container').style.display = 'none'
|
||||
document.getElementById('graph').parentNode.style.display = 'none'
|
||||
document.getElementById('video_container').parentNode.style.flex = '0 0 100%'
|
||||
document.getElementById('video_container').parentNode.style['max-width'] = '100%'
|
||||
} else {
|
||||
setup.playback.hlsjsConfig = {
|
||||
// liveSyncDurationCount: 7,
|
||||
loader: this.isP2PSupported ? this.engine.createLoaderClass() : Hls.DefaultConfig.loader
|
||||
};
|
||||
}
|
||||
|
||||
await scriptsPromise;
|
||||
@@ -404,7 +690,7 @@ class App {
|
||||
if (oReq.readyState != 4) { return; }
|
||||
|
||||
var location = this.response
|
||||
graph.add({ id: peer.id, name: location.city + ' - ' + location.region + ' (' + location.country + ')' || 'Unknown' });
|
||||
graph.add({ id: peer.id, name: location.city + ' - ' + location.region + ' (' + location.country + ') - ' + window.name || 'Unknown' });
|
||||
graph.connect("me", peer.id);
|
||||
}
|
||||
oReq.open('POST', 'ip', true);
|
||||
|
||||
Referencia en una nueva incidencia
Block a user