Merge "添加更新用户流量的方法,并定时跟新到所有用户"
Change-Id: I558ee7de6767ed1b78685883310a268ea51b198a
diff --git a/src/main/java/com/pt/controller/TrackerController.java b/src/main/java/com/pt/controller/TrackerController.java
index edae09f..56c0867 100644
--- a/src/main/java/com/pt/controller/TrackerController.java
+++ b/src/main/java/com/pt/controller/TrackerController.java
@@ -7,22 +7,34 @@
import org.springframework.web.bind.annotation.*;
import java.io.IOException;
+import java.util.HashMap;
import java.util.Map;
@RestController
-@CrossOrigin(origins = "*")
@RequestMapping("/api/tracker")
+@CrossOrigin(origins = "*")
public class TrackerController {
@Autowired
private TrackerService trackerService;
- @GetMapping("/announce")
- public void announce(HttpServletRequest request, HttpServletResponse response) throws IOException {
+ // tracker相应bt客户端的announce请求
+ @PostMapping("/announce")
+ public void announceByPost(
+ @RequestParam("info_hash") String infoHash,
+ @RequestParam("peer_id") String peerId,
+ @RequestParam("port") int port,
+ HttpServletRequest request,
+ HttpServletResponse response
+ ) throws IOException {
try {
String ip = request.getRemoteAddr();
- Map<String, String[]> params = request.getParameterMap();
+ // 将参数封装为 Map 传给服务层(也可以直接传对象)
+ Map<String, String[]> params = new HashMap<>();
+ params.put("info_hash", new String[]{infoHash});
+ params.put("peer_id", new String[]{peerId});
+ params.put("port", new String[]{String.valueOf(port)});
byte[] bencodedResponse = trackerService.handleAnnounce(params, ip);
response.setContentType("application/x-bittorrent");