首页 新闻 会员 周边

【讨论】基于Web应用的Socket技术的可行性

0
悬赏园豆:100 [已解决问题] 解决于 2016-11-24 09:16

最近的应用,需要自己建立一个服务,通过这个服务(client或server)去访问第三方的socket(对方支持client或server模式)。

 

考虑到,简单的实现是定义一个winservice,但又觉得这个service不是自己想要的(维护起来不方便),因此冒出了基于Web应用构建Socket服务的念头。

 

1、socket的启动:

在Application_Start时,建立静态服务对象,或实现TcpClient或实现TcpListener。

这个是已经实现了的,基本上能跑起来。

 

2、服务的运行问题:

a、运行过程中,可能出现各种意外,比如对方意外,己方意外,需要重新启动监听或通知对方继续监听。

b、如果Web应用基于多进程的实现

 

3、Web请求对服务的访问问题。

这个问题已经解决。

519740105的主页 519740105 | 大侠五级 | 园豆:5810
提问于:2016-06-27 17:39
< >
分享
最佳答案
0

提一个可能要考虑的问题点

iis会定时回收连接,当你的web主体运行被回收之后,任何企图自己启动的代码,都不可执行。

还有通过web应用做socket接收的话,对应的客户端应该要实现web的协议然后再是你的socket自定协议把,有点繁琐

收获园豆:100
hahanonym | 小虾三级 |园豆:1460 | 2016-06-27 17:58

不一定是websocket,也可以是普通的socket,目前考虑的是普通的socket。

IIS的定时回收是个大问题,目前考虑的方案是:

设定站点始终运行的,即便IIS回收,也会自动启动。

519740105 | 园豆:5810 (大侠五级) | 2016-06-27 18:00

@519740105: 题外话,iis的回收可以通过glabal里面监听closed事件,然后自己访问自己,就永远停不下来了,哈哈

你打算用iis的话,那还是要实现http协议监听请求的回复啊,之类的。

可以考虑用windows服务开发,同时,看下服务与桌面交互(已经支持了,我最近也在往这方面改写程序)

如果是介意开发nio繁琐的话,可以用第三方的,类似supersocket/dotnetty之类的

hahanonym | 园豆:1460 (小虾三级) | 2016-06-27 18:06
清除回答草稿
   您需要登录以后才能回答,未注册用户请先注册