[英]Node.JS single socket, multiple events (uploads)
我正在開發一個上傳跟蹤器(進度欄等)。
因此對於我的前端,我使用jQuery File upload。 后端上傳是使用單獨的工作程序完成的,在那里我使用Redis pub / sub。 因此,要連接前端和后端,我使用Node.JS(socket.io)。
jQuery文件上傳具有一個“ done
”回調函數,該函數表示將我們的文件到達服務器。
對於單個文件,這絕對可以正常工作。
當我嘗試同時上傳2個以上文件時,會出現問題。 “完成”回調函數被附加到套接字偵聽器2次以上(如果我錯了,請更正我),並且作為輸出,我得到這樣的東西:
579 " - progress: " 8.333333333333334
580 " - progress: " 8.333333333333334
579 " - progress: " 16.666666666666668
580 " - progress: " 16.666666666666668
579 " - progress: " 25
580 " - progress: " 25
....
579 " -> upload is finished!"
580 " -> upload is finished!"
那是上傳2個文件的示例。 這根本沒有任何意義,因為它們只能一個接一個地處理。
所以它應該看起來像這樣:
579 " - progress: " 8.333333333333334
579 " - progress: " 16.666666666666668
579 " - progress: " 25
....
579 " -> upload is finished!"
580 " - progress: " 8.333333333333334
580 " - progress: " 16.666666666666668
....
580 " -> upload is finished!"
Node.js服務器端工作正常。 這是它的日志:
RECEIVED progress FROM upload-579
RECEIVED progress FROM upload-579
RECEIVED progress FROM upload-579
RECEIVED progress FROM upload-579
RECEIVED progress FROM upload-579
RECEIVED progress FROM upload-579
RECEIVED progress FROM upload-579
RECEIVED progress FROM upload-579
RECEIVED progress FROM upload-579
RECEIVED progress FROM upload-579
RECEIVED progress FROM upload-579
RECEIVED done FROM upload-579
RECEIVED progress FROM upload-580
RECEIVED progress FROM upload-580
RECEIVED progress FROM upload-580
RECEIVED progress FROM upload-580
RECEIVED progress FROM upload-580
RECEIVED progress FROM upload-580
RECEIVED progress FROM upload-580
RECEIVED progress FROM upload-580
RECEIVED progress FROM upload-580
RECEIVED progress FROM upload-580
RECEIVED progress FROM upload-580
RECEIVED done FROM upload-580
它從Redis通道接收消息,並向客戶端發出適當的消息。 我認為問題出在客戶端的某個地方,但是我無法弄清楚如何修改那里的代碼來獲得我想要的東西。 可以做些什么使它們彼此分離嗎?
PS
客戶端上的套接字事件回調將觸發來自Node.js的任何發射消息。 這就是為什么您看到重復的日志消息的原因。 在套接字消息中發送其他數據,或附加唯一事件。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.