0
我正在開發一個上傳跟蹤器(進度條等)。Node.JS單個插槽,多個事件(上傳)
所以對於我的前端我使用jQuery文件上傳。 後端上傳是使用單獨的工作人員完成的,我使用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的信道消息,並且發射相應的消息至客戶端。 我認爲問題出在客戶端,但我無法弄清楚如何修改代碼以獲得我想要的。 可以做些什麼來將它們彼此分開?
P.S
爲什麼你認爲上傳不能同時發生? – 2014-09-19 07:03:17
只有一名工人處理上傳。 所以這是絕對不可能的。 另請參閱我提供的日誌。 – Dmitri 2014-09-19 07:04:24
單節點員工或一名Redis員工?你能否也顯示Node.js代碼? – 2014-09-19 07:12:51