【发布时间】:2013-12-31 07:32:41
【问题描述】:
情况:
用户已发送图像,图像后,他将发送消息。当第二个用户没有收到图片时,不会发送消息。
如何正常发送消息,就像在正常聊天中一样? 我发现,node.js 有“异步”模块,但是如何将它与 Socket IO 一起使用?
【问题讨论】:
情况:
用户已发送图像,图像后,他将发送消息。当第二个用户没有收到图片时,不会发送消息。
如何正常发送消息,就像在正常聊天中一样? 我发现,node.js 有“异步”模块,但是如何将它与 Socket IO 一起使用?
【问题讨论】:
您可以简单地传递队列中的每条消息。因此,每条消息都必须等待第一个发送完后才能传递给下一个。
虽然,在你的情况下。我认为等待发送图片是不明智的 - 这会使您的聊天无响应。
而是使用简单的文本image 消息。一旦你收到这个,在聊天中放置一个占位符,当你收到它时你将加载图像(同时显示一个加载器)。这将允许您继续聊天,而不会被漫长的 IO 进程阻塞以完成。
【讨论】:
image 文本,那么我也需要发送图像,但是我该怎么做,当我发送图像时它会冻结 IO。你能解释更多吗?
Socket.IO 使用单个 WebSocket 连接,一次只允许发送一个项目。您应该考虑在单独的 WebSocket 上或通过其他方法带外发送该图像。
我有类似的情况,我必须流式传输连续的二进制数据和信令消息。为此,我使用BinaryJS 设置在两端镜像的逻辑流。一个流用于二进制流,另一个用于 RPC。不幸的是,Socket.IO 不能使用任意流。唯一似乎可以工作的 RPC 库是rpc-stream。 RPC 功能不如 Socket.IO 强大(尤其是在处理回调时),但它确实运行良好。
【讨论】: