讨论下,进程间通信的问题

sgyiliya 2020-05-08 03:40:07
网络上看了下,总结的几种进程间通信的办法,总感觉比较复杂。

我个人是认为,就是这个自我宿主方式的WCF很好用,做起来比较简单,跑起来也很稳定。如果有服务器,挂靠IIS的也不错。

但是,想请大侠们,给我介绍下,还有没有类似WCF这样的简单稳定的、能够实现实时双向通信的技术?
要求是:一方面能实现同一台电脑的不同的进程之间的实时双向通信,另一方面也能实现网络上两台电脑之间的不同的进程之间的实时双向通信。(webservice与WCF类似,也不算了)http ftp这些不算了

...全文
1035 29 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
29 条回复
切换为时间正序
请发表友善的回复…
发表回复
hfjcloud 2020-05-14
  • 打赏
  • 举报
回复
引用 2 楼 sgyiliya 的回复:
[quote=引用 1 楼 无味无感 的回复:] 我记得Web Socke可以实现双向通信 https://edu.csdn.net/course/play/25610/352908
socket粘包的问题,可能还是无解啊。分包处理虽然可以,但是就不太好了。[/quote] 为啥说socket粘包问题无解?
hfjcloud 2020-05-14
  • 打赏
  • 举报
回复
引用 27 楼 兔子家族-二哥 的回复:
[quote=引用 14 楼 以专业开发人员为伍 的回复:] WCF沉重且有各种方言协议,而且基本上在用的也都是不支持“双向”的。 使用 websocket 是很好的选择,轻而且通用,包括凡是支持 html5 的浏览器和底层平台(比如各种手机)都支持。
哈哈哈,借用一下,使用WebSocket 可以使用 SignalR,这套都是比较成熟了,网上资料也不少。关键是入门简单。[/quote] node.js
jwh2004 2020-05-13
  • 打赏
  • 举报
回复
WCF比较老了,近5年大公司都比较少用了,推荐楼主看看WebApi
Super hand 2020-05-13
  • 打赏
  • 举报
回复
一方面能实现同一台电脑的不同的进程之间的实时双向通信,另一方面也能实现网络上两台电脑之间的不同的进程之间的实时双向通信。全双工的核心传输
dangerous- 2020-05-12
  • 打赏
  • 举报
回复
我觉得用户管道就可以解决的吧
  • 打赏
  • 举报
回复
引用 14 楼 以专业开发人员为伍 的回复:
WCF沉重且有各种方言协议,而且基本上在用的也都是不支持“双向”的。

使用 websocket 是很好的选择,轻而且通用,包括凡是支持 html5 的浏览器和底层平台(比如各种手机)都支持。



哈哈哈,借用一下,使用WebSocket 可以使用 SignalR,这套都是比较成熟了,网上资料也不少。关键是入门简单。
Sky Worker 2020-05-11
  • 打赏
  • 举报
回复
建议研究一下gRPC, 下一代技术。WCF太老了,负载高,速度慢,不好兼容于其它的技术
雨言yyds 2020-05-11
  • 打赏
  • 举报
回复
学到了学到了
by_封爱 版主 2020-05-11
  • 打赏
  • 举报
回复
引用 2 楼 sgyiliya 的回复:
socket粘包的问题,可能还是无解啊。分包处理虽然可以,但是就不太好了。
你没看到论坛有一个帖子 人家说 什么协议组包 都是全自动的 你快上
sgyiliya 2020-05-11
  • 打赏
  • 举报
回复
感谢各位大侠,初步打算重点研究一下thrift, 顺便问下,同时支持C++,Java,C#,的RPC框架,还有哪些?
泡泡龙 2020-05-10
  • 打赏
  • 举报
回复
RPC开源代码很多很多
丁劲犇 2020-05-10
  • 打赏
  • 举报
回复
可以用管道。这个东西里有标准输入输出管道的另类用法,还带tcp的分布式。 https://github.com/goldenhawking/taskBus/blob/master/documents/taskbus_zh_CN.md
sgyiliya 2020-05-09
  • 打赏
  • 举报
回复
引用 12 楼 bluedoctor 的回复:
类似WCF这样的简单稳定的、能够实现实时双向通信的技术? ------------- 有,iMSF框架,使用WCF为通信框架,利用它的双工TCP通信功能,设计开发的一个实时消息通信系统,支持点对点和一对多的消息订阅和推送,以及服务器回调客户端任意函数,使用简单,详细内容可以参考这个入门:《“一切都是消息”--iMSF(即时消息服务框架)入门简介
好的,感谢。会花时间好好看看。 个人认为,java阵营确实有很多好的理念,但是微软阵营也不弱。两个阵营不能很好的契合起来,应该不是技术的问题,是利益的问题。
bluedoctor 2020-05-09
  • 打赏
  • 举报
回复
类似WCF这样的简单稳定的、能够实现实时双向通信的技术?
-------------
有,iMSF框架,使用WCF为通信框架,利用它的双工TCP通信功能,设计开发的一个实时消息通信系统,支持点对点和一对多的消息订阅和推送,以及服务器回调客户端任意函数,使用简单,详细内容可以参考这个入门:《“一切都是消息”--iMSF(即时消息服务框架)入门简介
ying1234 2020-05-09
  • 打赏
  • 举报
回复
引用 10 楼 wanghui0380 的回复:
netmq,akka.net,ProtoAct,微软的Orleans 这几个说起来还是毕竟有意思 netmq------是zeromq的net实现版本------zeromq是一个非常流行的C++项目,作者已经陪上帝了(愿作者安息),不过这项目本身因为太流行,所以有人继续维护 (python的人也经常使用因为python的人其实最痛苦的也是怎么通讯,以前python都是玩算法,玩科学的,根本不考虑生产。现在要跟人配合了,如何通讯也就成了问题) akka.net------------是akka的net实现版本------akka本身是Scala语言编写(因为java的人也羡慕erlang那种天生就是为分布通讯的简单优雅实现) ProtoAct--------------这个是后进,同样是仿照erlang,提供Go和net的接口 Orleans---------这个是微软的,不过我个人不太喜欢。太重了,而且既然net core了,那么和其他语种配合才是问题。前面3个至少你从描述都知道,他们起码都是跨语种的协议。而微软这个,理论上可以跨语种,不过谁来研究他,来做支持呢?就像你说wcf,俺们用没问题,虽然有坑,不过基本都能跨过去。但是你说python,java,go跟你配合,怎么弄?让java的对接你的wcf,又得折腾了。折腾好了没问题,折腾出毛病,一准是“你们net啥玩意,搞这么复杂还一堆毛病”
也是,以前想弄个wcf服务供php端调用,对方一听说是wcf,连连摇头,说以前他和wcf对接过,麻烦死了,只好放弃了。
wanghui0380 2020-05-09
  • 打赏
  • 举报
回复
netmq,akka.net,ProtoAct,微软的Orleans 这几个说起来还是毕竟有意思 netmq------是zeromq的net实现版本------zeromq是一个非常流行的C++项目,作者已经陪上帝了(愿作者安息),不过这项目本身因为太流行,所以有人继续维护 (python的人也经常使用因为python的人其实最痛苦的也是怎么通讯,以前python都是玩算法,玩科学的,根本不考虑生产。现在要跟人配合了,如何通讯也就成了问题) akka.net------------是akka的net实现版本------akka本身是Scala语言编写(因为java的人也羡慕erlang那种天生就是为分布通讯的简单优雅实现) ProtoAct--------------这个是后进,同样是仿照erlang,提供Go和net的接口 Orleans---------这个是微软的,不过我个人不太喜欢。太重了,而且既然net core了,那么和其他语种配合才是问题。前面3个至少你从描述都知道,他们起码都是跨语种的协议。而微软这个,理论上可以跨语种,不过谁来研究他,来做支持呢?就像你说wcf,俺们用没问题,虽然有坑,不过基本都能跨过去。但是你说python,java,go跟你配合,怎么弄?让java的对接你的wcf,又得折腾了。折腾好了没问题,折腾出毛病,一准是“你们net啥玩意,搞这么复杂还一堆毛病”
  • 打赏
  • 举报
回复
MQ呀,不是号称分布式事务统一通信么
sgyiliya 2020-05-09
  • 打赏
  • 举报
回复
引用 7 楼 wanghui0380 的回复:
有句很老的歌词,很贴切的形容这里的风格“不理不问啊不想” 你这些东西,其实很早就被通用化了。只是这里的人也就只剩那句歌词了。 netmq,akka.net,ProtoAct,微软的Orleans 全是此类,单进程内通讯,本机多进程通讯,网络通讯。 可能akka的资料多点,我就用akka说。 对于你来说只是需要本机单进程能调试通过,你的系统就完成了。因为剩下的只是修改配置,你让什么方法(他叫Actor)跟谁通讯他就跟谁通讯。 再说点后话,当然这些东西基于配置,简单的玩意你就手动配就好。如果复杂的分布式网络,建议加入etcd,zoopkeeper这里进行全局统一配置
好的,感谢。这些要花时间好好看看。
wanghui0380 2020-05-09
  • 打赏
  • 举报
回复
有句很老的歌词,很贴切的形容这里的风格“不理不问啊不想” 你这些东西,其实很早就被通用化了。只是这里的人也就只剩那句歌词了。 netmq,akka.net,ProtoAct,微软的Orleans 全是此类,单进程内通讯,本机多进程通讯,网络通讯。 可能akka的资料多点,我就用akka说。 对于你来说只是需要本机单进程能调试通过,你的系统就完成了。因为剩下的只是修改配置,你让什么方法(他叫Actor)跟谁通讯他就跟谁通讯。 再说点后话,当然这些东西基于配置,简单的玩意你就手动配就好。如果复杂的分布式网络,建议加入etcd,zoopkeeper这里进行全局统一配置
sgyiliya 2020-05-09
  • 打赏
  • 举报
回复
引用 4 楼 贵阳老马马善福专业维修游泳池堵漏防水工程 的回复:
如果局限在本机,可以用管道(pipe)
好的,下次试试看。但最好还是能实现非本机的。
加载更多回复(9)

111,094

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术 C#
社区管理员
  • C#
  • AIGC Browser
  • by_封爱
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

让您成为最强悍的C#开发者

试试用AI创作助手写篇文章吧