首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >Node.JS单套接字,多个事件(上传)

Node.JS单套接字,多个事件(上传)
EN

Stack Overflow用户
提问于 2014-09-19 06:54:17
回答 1查看 163关注 0票数 0

我正在开发一个上传跟踪器(进度条等)。

因此,对于我的前端,我使用jQuery文件上传。后端上传使用单独的工作人员完成,在那里我使用Redis pub/sub。因此,为了连接前端和后端,我使用了Node.JS (socket.io)。

jQuery文件上传有一个"done“回调函数,表示我们的文件到达服务器。

对于一个文件来说,这是非常好的。

当我尝试同时上传2+文件时会出现问题。“完成”回调函数是连接到套接字侦听器的2+时间(如果我错了请纠正我),作为输出,我得到如下内容:

代码语言:javascript
运行
复制
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个文件的例子。这根本没有任何意义,因为它们只能一个接一个地处理。

所以应该是这样的:

代码语言:javascript
运行
复制
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服务器端完全正常工作。这是其中的一个日志:

代码语言:javascript
运行
复制
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

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2014-09-19 08:09:47

客户端上的套接字事件回调将触发来自Node.js的任何发出消息。这就是为什么您看到重复的日志消息。要么在套接字消息中发送其他数据,要么附加唯一的事件。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/25928036

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档