问题标签 [channel]

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 投票
2 回答
4771 浏览

java - 在不使用 java.io.* 的情况下获取 FileChannel(使用纯 NIO)

最近,我收到了对此答案java.io的评论,如果我想使用“纯 NIO” ,我应该远离。
这是简化的代码(复制文件):

(代码极其简化:删除了 try-finally 和循环)

我的问题是如何在FileChannel不使用 java.io ( ) 的情况下获取一个或其他 NIO 类来读取文件FileInputStream

编辑:
Java 6(或仅之前)

0 投票
1 回答
1778 浏览

wcf - 自定义 WCF 通道的池化

我们开发了一个通过 IBM Websphere MQ 进行通信的自定义 WCF 通道。

我们创建了一个通道工厂:

它返回我们频道的实例:

连接到 IBM MQ 队列管理器是一项昂贵的操作。目前,我们在 Channel.OnOpen() 中执行此操作。

遵循正确使用通道的指南,我们每次需要通道时调用 ChannelFactory.CreateChannel(),发送消息,然后调用 Channel.Close()。

我们的假设是,ChannelFactory 执行了通道池,因此当 Channel.Close() 被调用时,通道实际上并没有关闭,而是返回到池中。但是,每次我们调用 ChannelFactory.CreateChannel 时,都会实例化一个新的通道,并且在发送请求时,会执行昂贵的通道打开。

所以,问题是:防止在每个请求上打开通道的最佳方法是什么?

我们正在研究的一些选项:

  • 无论如何通过配置来指定应该进行通道池吗?我们是否应该在 ChannelFactory 中实现自己的通道池?

  • 我们是否应该在应用程序的整个生命周期内保持通道打开,通过它发送所有请求?

  • 我们是否应该在通道工厂中执行昂贵的操作(连接到队列管理器),我们在应用程序的生命周期中缓存这些操作?

0 投票
1 回答
3184 浏览

c# - TcpChannel注册问题

我在这里读过:尝试打开 TcpChannel 时出现错误 10048

我遇到了我认为类似的问题 - 显然不是。我听取了第一响应者的建议来重置 winsock(winsock 是如何损坏的,无论如何?)无论如何,这是我的频道注册:

和客户电话:

这似乎太简单了,使用起来很麻烦。但是,问题似乎出在服务器的 ChannelServices.RegisterChannel(...) 上。现在,我包含客户端部分的原因是因为客户端实例检查服务器对象。如果它找不到它,那么它会“推动”服务器以实例化自身。我想知道的是,如果首先检查对象是否可用(例如: Activator.GetObject(...) )会导致 ChannelServices '认为'这个 tcp 通道已经注册?这听起来很愚蠢,但这是我唯一可能的解释。我已关闭防火墙、抗真菌应用程序并重新启动。还是收到这个

频道“tcp”已注册。

我查看了堆栈跟踪并注意到:

我想知道 RegisterChannelInternal(...) 是否可能是导致“已注册”问题的原因。所以,除此之外,我很茫然……

我为检查该频道而进行的调用可能会导致它。如果这是共识,那么我的问题将变为:我如何为频道投票?

更新:从客户端删除对服务器的初始检查并“假设”服务器需要实例化后,我确实发现客户端检查导致了问题。我已经设法让服务器运行起来,并且客户端确实得到了一个“透明代理”对象。但问题仍然存在:“我如何通过轮询来发现服务器是否已实例化?”

0 投票
1 回答
2453 浏览

c# - 获取客户端 IP 地址:端口(System.Runtime.Remoting.Channels)

我正在尝试获取内部集合的客户端 IP 地址和端口。我找到了这个答案。但是,这似乎比我简单地获取客户端的 IP 地址和端口所需的要多得多。还有其他方法可以做到这一点吗?

0 投票
2 回答
504 浏览

parsing - Antlr3 - 解析器中的隐藏令牌

您可以在解析器的单个规则中的隐藏通道中使用词法分析器中定义的标记,就好像它是普通标记一样?生成的代码是Java...

谢谢

0 投票
4 回答
5111 浏览

wcf - 直接通道使用与使用代理?

正如标题所暗示的那样,我试图了解为什么在 WCF 中人们有时会选择“生成代理”而不是使用 ChannelFactory 手动创建新的通道实例。我已经看过每个例子,但还没有真正找到任何解释为什么你会选择一个与另一个。

老实说,我只使用过频道和ChannelFactory<T>我继承的代码,即:

那么我为什么要“生成代理”呢?有什么好处和坏处?

0 投票
2 回答
1670 浏览

apache-flex - Flex - 有没有办法更改“Channel Disconnected”错误消息?

我有一个带有 PHP 后端的 Flash 应用程序。每当出现 PHP 错误时,我都会收到“在收到确认之前通道已断开”错误消息。

我正准备将我的项目推送到测试版,我希望这条消息更像是“出现 PHP 错误,请记录错误”或其他内容,而不是他们不理解的消息。

任何人都知道我可以更改此错误消息的方法吗?顺便说一句,当谈到 Flash 编程时,我几乎是个菜鸟,所以请描述一下。使用 Flash Builder 4 Beta 2。

0 投票
3 回答
3356 浏览

wcf - 通过共享通道并发 WCF 调用

我有一个将调用转发到应用程序层的 Web 层。Web 层使用共享的缓存通道来执行此操作。有问题的应用层服务是无状态的并且启用了并发性。

但它们不会同时被调用。

如果我更改 Web 层以在每次调用时创建一个新通道,那么我确实会在应用程序层上获得并发调用。但我想避免这种成本,因为它在我的场景中在功能上是不必要的。我没有会话状态,也不需要每次都重新验证调用者。我知道创建通道工厂比创建通道要昂贵得多,但如果可能的话,我仍然想避免这种成本。

我在 MSDN 上找到了这篇文章,其中指出:

虽然由通道创建的通道和客户端是线程安全的,但它们可能不支持同时向线路写入多个消息。如果您正在发送大型消息,特别是在流式传输时,发送操作可能会阻塞等待另一个发送完成。

首先,我没有发送大消息(只是很多小消息,因为我正在进行负载测试),但仍然看到阻塞行为。其次,这是相当开放且无用的文档。它说他们“可能不”支持编写多条消息,但没有解释他们支持并发消息的场景。

任何人都可以对此有所了解吗?

附录:我也在考虑创建一个网络服务器用来满足请求的通道池。但同样,我认为没有理由阻止我现有的方法,如果可能的话,我宁愿避免复杂性。

0 投票
1 回答
1222 浏览

jboss - 如何进行 JBoss/Blazeds 集群和通道故障转移

我坚持使用 jboss 和 blazeds 集群化。我现在拥有的是:

  1. 2 个 Jboss 实例,以所有模式运行
  2. 正如 Jboss 文档所建议的那样,一个带有 apache 和 mod_jk 的负载均衡器
  3. 一个 spring/flex 集成应用程序
  4. 一个弹性应用程序,当我的一个 JBoss 实例下降时我不想抛出错误

我发现 Adob​​e 文档确实缺乏,并且在集群、jgroups 和平衡方面是新手,我找不到如何在集群环境中部署我的应用程序。

实际上,此解决方案适用于远程调用。如果其中一个 jboss 实例发生故障,则 rpc 将被路由到另一个实例。推送消息不起作用,因为如果客户端连接到 JBossA,并且 JBossA 出现故障,客户端会显示一条错误消息,说明它无法到达 JBossA,何时应该故障转移到 JBossB,而用户没有注意到任何事情。

据我了解,如果配置正确,blazeds 应该在连接时告诉 flex 客户端有关故障转移服务器的信息。然后,如果 flex 客户端无法连接到主服务器,它会转到另一个服务器。但对我来说最困难的部分是到达那里。有人可以指出我正确的方向吗?提前致谢

0 投票
2 回答
2938 浏览

wcf - WCF wsHttpBinding“没有可以接受带有操作的消息的通道”

[更新] 通过生成新的 web.config 解决了问题。可能的错误是第二个端点(“mex”)。[更新/]

我在 IIS 中有一个网络服务。

我正在尝试调用一个函数,但我收到如下错误消息:

没有通道可以接受带有操作“ http://Datenlotsen.Cyquest/ICyquestService/ValidateSelfAssessment ”的消息

我将它托管在标准网站的 IIS 中。在那里我创建了一个名为“CyQuestwebservice”的虚拟目录。对于客户端配置,我使用的是 Soap UI。该工具从 wsdl 生成客户端配置。

我的 webconfig 看起来像这样,你能帮帮我吗?: