W
Wizatek
Gamma
Verificación en dos pasos activada
¡Ha verificado su Paypal!
Verificado por Binance
¡Usuario con pocos negocios! ¡Utiliza siempre saldo de Forobeta!
import { Server } from 'bittorrent-tracker'
const server = new Server({
udp: true, // enable udp server? [default=true]
http: true, // enable http server? [default=true]
ws: true, // enable websocket server? [default=true]
stats: true, // enable web-based statistics? [default=true]
trustProxy: false // enable trusting x-forwarded-for header for remote IP [default=false]
})
// Internal http, udp, and websocket servers exposed as public properties.
server.http
server.udp
server.ws
server.on('error', function (err) {
// fatal server error!
console.log(err.message)
})
server.on('warning', function (err) {
// client sent bad data. probably not a problem, just a buggy client.
console.log(err.message)
})
server.on('listening', function () {
// fired when all requested servers are listening
// HTTP
const httpAddr = server.http.address()
const httpHost = httpAddr.address !== '::' ? httpAddr.address : 'localhost'
const httpPort = httpAddr.port
console.log(`HTTP tracker: http://${httpHost}:${httpPort}/announce`)
// UDP
const udpAddr = server.udp.address()
const udpHost = udpAddr.address
const udpPort = udpAddr.port
console.log(`UDP tracker: udp://${udpHost}:${udpPort}`)
// WS
const wsAddr = server.ws.address()
const wsHost = wsAddr.address !== '::' ? wsAddr.address : 'localhost'
const wsPort = wsAddr.port
console.log(`WebSocket tracker: ws://${wsHost}:${wsPort}`)
})
// start tracker server listening! Use 0 to listen on a random free port.
const port = 80
const hostname = "localhost"
server.listen(port, hostname, () => {
// Do something on listening...
})
// listen for individual tracker messages from peers:
server.on('start', function (addr) {
console.log('got start message from ' + addr)
})
server.on('complete', function (addr) {})
server.on('update', function (addr) {})
server.on('stop', function (addr) {})
// get info hashes for all torrents in the tracker server
Object.keys(server.torrents)
¿Y cómo pudiste integrar el servidor y el cliente para que ambos funcionen sin que se canibalicen?Yo he usado dicho script en unos cuantos proyectos, de hecho hice en su momento un PR a ese proyecto para añadirle la opción de usar WSS para poder usarlo en sitios con https (luego hicieron mal el un merge y se perdieron mis cambios xD).
PD: Por experiencia te digo que la librerías no es muy buena, no por la calidad del código (aunque no te fíes si hacen mal los merges xD), sino por algo usual en javascript: En cuanto le vas poniendo más peers el consumo aumenta en función exponencial.
kj
¿Y cómo pudiste integrar el servidor y el cliente para que ambos funcionen sin que se canibalicen?
Es decir, el server.js funciona muy bien, solo que no tendrás los peers de los demás torrents ya que no usaron tu tracker para subir el video. Por lo tanto, necesitas el cliente.js para extraer la información de otros trackers.
¿Qué hiciste en ese caso?
Como su nombre indica, un rastreador, rastrea a usuarios (peers) que tienen fragmentos de un archivo específico y al conectarnos a ellos podemos descargarlos y juntar las partes.de que sirve eso de Tracker? no se mucho del tema
yo tengo es un nodo que esta conectado a muchas paginas web de descarga por torrent y puedo buscar peliculas, juegos apk entre muchas otras cosas.
Como su nombre indica, un rastreador, rastrea a usuarios (peers) que tienen fragmentos de un archivo específico y al conectarnos a ellos podemos descargarlos y juntar las partes.
Lo que yo estoy haciendo es un stream de videos torrent, de hecho ya lo tengo hecho para desktop y app, lo mismo que Popcorn time, pero yo lo quiero para web y sin consumir ancho de banda para mi servidor.
Si, mas o menos 😀oh no sabia eso, yo se mucho Nodejs.
🤔 en resumen por ejemplo, uno indica el archivo que es, y rastreara los usuario que tienen copia del archivo y asi hacer un video stream de ese torrent?
Si, mas o menos 😀
Utilizamos cookies y tecnologías similares para los siguientes fines:
¿Aceptas las cookies y estas tecnologías?
Utilizamos cookies y tecnologías similares para los siguientes fines:
¿Aceptas las cookies y estas tecnologías?