问题标签 [multiplexing]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
1 回答
3099 浏览

node.js - 如何使用 Socket.io 禁用多路复用

我正在使用 Socket.io 使用 Twitter 的 Streaming API 向我的用户流式传输实时推文(我的实现或多或少基于本教程)。

问题是每次 Socket.io 触发连接事件时,新连接的客户端都会导致连接到服务器的所有其他客户端停止更新。虽然完成我尝试过的所有黑客攻击需要很长时间,但我会说我已经玩够了,我相信这个问题是由 Socket.io 多路复用来自多个客户端的连接(默认启用)作为一个性能提升以允许多个客户端或连接共享相同的底层套接字。简而言之,我认为情况确实如此,因为如果不是连接多路复用,我认为新连接不可能以这种方式影响旧连接。换句话说,如果一个新的,每次客户端连接时都会创建与其自己的底层(TCP)套接字的独立连接,这是不可能发生的,因为一个连接对另一个连接一无所知,因此不会影响当前正在发生的任何其他客户端的状态。这也让我相信,简单地禁用多路复用功能将是解决这个问题的最简单方法,因为我不关心缩放,因为 Node.js 已经处理了我可能需要非常充分地处理的所有并发。

我已经浏览了 Socket.io 的文档,但看不到通过 API 公开“解复用”连接的能力,所以如果有人知道如何做到这一点,我会感谢您的回复。

我下面的代码非常标准和简单。但要明确一点,问题是每当一个新客户端连接到 Socket.io 时,每个其他客户端都会停止接收新推文,并且更新不再推送到旧客户端,除非我刷新浏览器,在这种情况下,新刷新的客户端将开始更新并再次接收新的推文,但其他仍然连接的客户端将停止更新。

服务器端代码:

客户端代码

如果我的想法不正确,或者我的代码有问题,我绝对愿意接受任何建议。我也很乐意回复任何其他详细信息。

0 投票
1 回答
4742 浏览

c - C - 使用轮询在套接字和标准输入之间多路复用 - 服务器

我正在编写一个客户端服务器应用程序,我正在使用轮询在多个客户端套接字和标准输入之间进行多路复用,我可以在其中插入命令(例如:停止服务器)。我相信我的代码的结构(“逻辑”)是正确的,但是它的行为并不像我期望的那样:

我已经删除了 recv 中的一些代码并发送以使代码更易于阅读。它无法正常运行(它只是挂起、不接受连接或对来自标准输入的输入做出反应)。

注意:我更喜欢使用投票而不是选择,所以请不要指向选择:-)。

提前感谢您的任何帮助。

0 投票
1 回答
839 浏览

c++ - 通过套接字多路复用数据

基本上,我试图从同一个套接字同时传输 2-3 个文件,不中断发送回客户端/服务器的消息。

类似于 2 个人和 3 个文件传输之间的聊天程序。

我试图避免打开 2 个或更多流。

我希望一切都异步发生 - 仍然同时通话和传输所有 3 个文件;不是一个接一个。

我的协议会是什么样子?我想不出这个。

0 投票
3 回答
17636 浏览

verilog - Basys2 上的七段复用

这是我的第一篇文章,所以我希望我做得正确。我试图在 BASYS2 板上的四位七段显示器上输出“4 3 2 1”。我已检查以确保 0 启用信号并且我已正确映射端口。我相信错误在我的多路复用逻辑中,因为我只能显示一个数字。我是 Verilog 的新手(我习惯于 C),如果有任何建议,我将不胜感激。谢谢

0 投票
2 回答
5935 浏览

c - UDP 套接字使用 select()

嗨,我正在创建一个代理服务器,它通过 UDP 连接等待来自客户端的数据包,并检查它们是否都有效到达或是否相同。

在这种情况下,我应该为每个丢失的数据包(使用 send_ack() )向客户端发送一个“ack”,但是在发送第一个 ack 之后,选择循环的“if 部分”发送无限的 ack 永远不会回到“else”部分”是来自客户端的选择监听数据(接收 _pkt() 函数)

希望它足够清楚,感谢您的建议!

0 投票
2 回答
1769 浏览

nested - Netty 嵌套管道/多路复用

我对 Netty 很陌生,但是当几个协议(例如 P1 和 P2)被封装在另一个协议中时,如何在 Netty 4.x 中实现一个案例?

有没有办法创建嵌套管道,以便decoder<->encoder<->muxer<->demuxer作为主管道将根据解复用器的决定沿 P1 或 P2 管道发送数据?

或者也许有一种方法可以用自己的管道以某种方式创建(为了清楚起见)“子通道”?

0 投票
2 回答
8158 浏览

c - What's a file descriptor's "exception"?

When one calls select() asking which file descriptors have "exceptions" waiting, what does that mean?

How does one trigger one of these "exceptions"?

If anyone can point me to a nice explanation, that'd be awesome. I've been googling and can't find a thing.

0 投票
2 回答
688 浏览

c - 当文件大小增加时,如何为读取多个文件进行多路复用 I/O?

在网络共享文件系统 (NFS) 上生成了许多文件。有一个类似的问题没有适当的解决方案:inotify with NFS

我使用 select() 来测试文件是否可以读取新数据。(其实有些是来自socket描述符,这里只是简化了)。

但是,我发现即使文件直到文件结束,它仍然返回准备读取状态。

你能建议更好的方法来编写这段代码吗?

如果我的 f1 和 f2 包含 3 个字节,输出将如下所示。

0 投票
1 回答
7431 浏览

pic - 使用 PIC16F877A 使用 C 复用 7 个段

这只是我第二次在这里提出问题。上次非常有帮助,所以我想我会重新访问,因为我被困在另一个 C 项目上!

我只是补充一点,我或多或少是 C 的总 n00b,但知道几乎足以在最少的帮助下尝试这个(直到现在!)而且我不是要求有人为我做这件事,只是为了几个指向正确方向的指针(没有双关语)。

我已经在这个主题上进行了相当多的谷歌搜索,但我正在尽力不只是从一些在线资源中复制和粘贴代码,因为我想从中学习,所以我正在尝试自己开发代码.

然后我要做的是:我已经为自己构建了一个 PIC 开发板,其中两个共阴极 7 段显示器连接到 '877A 的 PORTD。我已将 RB0 和 RB1 连接到打开 7 段的晶体管,并用简单的代码测试了所有内容,它工作正常,因此电路完全没有问题。我设法创建了一个从 0-9 计数的程序,这是非常基本的,我现在决定尝试多路复用并从 0-99 计数。我已经编写了一些代码并将其发布在下面,我想请人向我指出我做错了什么。到目前为止,我的个位数是 0-9,但十位数字似乎停留在 0。

我有一种感觉,我遗漏了一些东西,但我不知道是什么。我可能也有点过于复杂了。

我正在尝试制作一个用作温度传感器的程序,该程序使用热敏电阻分压器电路输入到 PIC 的 ADC(这是我的实际项目)并在多路复用显示器上显示该值实际上不是项目的一部分(我们只应该使用在“2”和“5”和“C”之间交替的一位数字“25C”等),但我想更进一步,所以我我试图开发这个改进版本。

无论如何,这已经够我胡说八道了,我将代码粘贴进去,希望有人能提供帮助。

如果我忘记添加任何内容,请告诉我。非常感谢您的帮助!

0 投票
1 回答
276 浏览

multiplexing - 时分复用的概念

我一直在研究时分复用的概念,但是我一直无法理解一些东西,例如,我一直无法理解为什么音频的采样率是8Kbps然后他们说帧长是128ms,我看到了在另一个文件的框架长度会1/8000给出128µs,我真的很困惑,事实上我很困惑,在另一个文件上我也被要求Explain Time Division in terms of sources and their bit rates。我想对所有这些提供一些帮助,也许对这个概念做一点解释也很好,这样我就可以从另一个人的角度来看待它,谢谢...