簡體   English   中英

如何編寫Web應用程序p2p網絡代碼?

[英]How can I code a web app p2p network?

我想編寫一個Web應用程序,其中一個用戶可以選擇一個文件,而其他多個用戶可以從用戶的計算機上下載該指定文件。 用戶必須打開他的電腦並打開網頁。

我不想要一個必須處理所有流量的大型主服務器。 用戶的計算機是服務器,堅持。 我明白我會使用洪流。

所有這一切都必須在網站上完成。

Web套接字是否有效?

拜托,謝謝。

由於各種原因,這實際上是不可能的:

  • 防火牆/ NAT
  • 動態IP
  • 沒有“服務器”在用戶的計算機上運行
  • 用戶計算機上的權限
  • 如果用戶只是刪除其計算機上的文件會發生什么?

要真正使它工作,你必須:

  • 說服用戶在他們的機器上安裝應用程序(你需要一個windows / linux / ... EXE)
  • 讓用戶在防火牆中打開一個端口(或使用一些庫來啟用NAT passthru)
  • 如果用戶的IP發生變化,請讓用戶的PC ping您的服務器

在服務器端,你必須保留幾個數據庫表,這里有一些我能想到的最重要的事情:

  • 用戶的表(用戶ID [PK],當前IP,通信端口,(可能是其他一些跟蹤事項))
  • 可用下載表(下載ID [PK],用戶ID [FK])

然后,當有人想要下載和下載時,您必須(可能)使用必需的參數(遠程用戶的IP /端口/文件ID)啟動您的應用程序並執行下載工作。

這絕不是一件容易的事。

如果用WebSockets表示HTML5的種類,我會遠離它。 http://en.wikipedia.org/wiki/WebSockets#Browser_support

必須保持的計算機基本上是您的服務器。 即使它不是某個大服務器。

我的建議是在每台用戶計算機上安裝apache或其他一些小型Web服務器,每台計算機都有一個dyndns地址,這樣你就可以找到對方。 它比編碼更容易。 特別是如果必須通過網頁。

您可以使用ac#客戶端庫連接到bittorrent或等,並使用此模式上傳/浸出。 就NAT /防火牆問題而言,它們都有很好的文檔記錄,並且正在使用協議的功能,即處理它。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM