Как сделать P2P-чат с помощью JavaScript?

Мне всегда было интересно, какую технологию я должен использовать для отправки информации из одного окна в другое. Недавно я выполнил следующие функции:

net=new WebSocket("ws://tatopatato.esy.es")

Эта функция не создает сервер WebSocket, но он получает его, хотя он всегда терпел неудачу, пока я не попытался сделать это с URL-адресом html5 Rocks. Он не выдал ошибку, но не обнаружил и сообщения WebSocket. Я попробовал эту другую функцию:

net=new webkitRTCPeerConnection({'iceServers':[{'url':'stun:stun.example.org'}]})
net.onmessage=function(e){console.log(e.data)}

Но оказывается, что эта функция не готова к установлению P2P-соединения, она только готова обнаружить веб-камеру и передать ее. Ни одна из функций не адаптируется к этому вопросу: что мне делать, чтобы функцию можно было активировать в одном из окон, чтобы все окна, открывшие этот же файл, превратились в функцию? (Включено, в котором функция была активирована.)

0
задан 15.10.2016, 23:51
3 ответа

Одна soluciГіn serГ, - чтобы использовать следующий сервер, который я сделал с socket.io в heroku:
http://p2p-server-by-sentifico.herokuapp.com/
... следующей формы:

    <script src="https://cdnjs.cloudflare.com/ajax/libs/socket.io/2.3.0/socket.io.dev.js"></script>
    <script>
    socket=io()
    socket.on("msg",(e)=>{
      eval(e.data)
    })
    document.onkeydown=()=>{
      socket.emit("msg",{data:prompt("Enter the msg")})
    }
    </script>

Или пробовать делать сервер в heroku со следующими файлами: package.json:

{
"name":"frozen-fortress-97232",
"version":"1.0.0",
"description":"",
"engines":{"node":"6.10.2"},
"main":"index.js",
"dependencies":{
"express":"^4.13.4",
"socket.io":"^1.4.5",
"nodejs-websocket":"^1.7.1"
},
"devDependencies":{},
"scripts":{"start":"node index.js"},
"author":"",
"license":"ISC"
}

index.js

obj={}
app=require("express")()
net=require("http").createServer(app)
app.use("/public",require("express").static(__dirname+"/public"))
net.listen(process.env.PORT||3000,()=>{console.log("Ready!")})
require("socket.io")(net,{}).sockets.on("connection",(socket)=>{
  socket.on("msg",(e)=>{
    socket.broadcast.emit("msg",{data:e.data})
  })
})
0
ответ дан 24.11.2019, 13:05

Одно из решений Java для P2P - JXTA: https://jxta.kenai.com /

Из другой формы, tendrГ-эксперт, который должен использовать Socket: https://docs.oracle.com/javase/7/docs/api/java/net/Socket.html

, Но потом tendrГ-схвати, что кодировать всю систему P2P ты сами. Я представляю, что открывать Socket как сервер и клиента каждый раз, когда окно открывается, у которого была настойчивость между данными и т.д....

-1
ответ дан 24.11.2019, 13:05
  • 1
    Socket не служит для сетей p и # 250; blicas, и я не вижу способ использовать JXTA. – DrCristianstein 16.10.2016, 15:34
  • 2
    > Socket is not defined. – DrCristianstein 19.04.2017, 18:04

Не могут делаться связи одним браузером другому, у браузера всегда есть список клиент , не сервер : не считает осуществленной функциональность, чтобы получать просьбы связей, sГіlo смоги реализовывать .

Следовательно создавать чат P2P не возможно, ты нуждаешься в сервере , который получал бы и отправлял сообщения.

0
ответ дан 24.11.2019, 13:05