我正在开发一个上传跟踪器(进度条等)。
因此,对于我的前端,我使用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 08:09:47
客户端上的套接字事件回调将触发来自Node.js的任何发出消息。这就是为什么您看到重复的日志消息。要么在套接字消息中发送其他数据,要么附加唯一的事件。
https://stackoverflow.com/questions/25928036
复制相似问题