我目前拥有的是一款多方多聊天应用;这就是P2P,它使用较旧的.NET v2.0方法。仅限内联网。
我所追求的是如何动态创建WCF端点与配置文件中定义的静态端点;我可以做其余的事。我将使用通用消息与静态(预定义),因此这允许动态消息传递。我将在WCF中使用HTTP传输来发送和接收“普通旧XML”(POX)消息;也就是说,消息只包含XML有效负载而没有任何封闭的SOAP信封。
或者我应该假设每个工作站都需要相同的基本端口,并且仅将其用作唯一端口,并且没有网络冲突冲突(例如,2个客户工作站同时与同一主机工作站通信) ?
我想把它转移到WCF,但端点的事情让我感到兴奋;例如似乎无法弄明白。
历史: 我当前的聊天应用程序使用较旧的.NET v2.0方法。我有大约50个工作站,每个工作站都分配了一个静态端口,例如50100,50200,50300等。这允许最多99个端口,范围为50100~50199;端口50100是“基础”端口,端口50101~50199是“主机”端口,允许同时进行多达99个“主机”聊天会话。工作站可以在端口50101到50105上托管多个聊天会话。他们还可以在其他工作站的端口范围内的聊天中“加入”(成为访客)。
每个工作站都在他们的基本端口上“监听”,例如50100.当聊天请求进入其基本端口时,请求“服务器”提供动态创建的端口以作为访客“加入”聊天请求。在此示例中,工作站A(基本端口50100)从工作站B获得邀请以加入端口50235(50200是工作站B的“基本”端口,用于传入聊天请求)。 顺便说一句:我使用网络服务来跟踪用户何时在线。聊天应用程序在打开/退出时注册/取消注册Web服务。
当前的WFC模型 使用WCF,我看不出上面这个模型如何被“移植”(没有双关语)进入WCF模型。配置文件显示所有工作站的单个端口。可以在同一端口上发生多个聊天,包括主机和来宾?我想不会。
缺点是,我怎么能纯粹用C#代码动态创建端点,没有静态配置文件端点,或者我可以吗?我似乎无法找到任何例子。
也就是说,基本工作站端口(端点)将“监听”聊天请求;它将创建一个端点,将聊天请求发送到另一个工作站的基本端口(端点),并在受邀参与聊天时创建端点。
THX,
GaryN