目前存在外部服务A、B、C、D、E、F,多个客户端会请求外部服务。
目前想在客户端和外部服务中间挂接一个代理服务,
将客户端的所有请求统一由代理服务与外部服务来进行通讯交互,最后将结果返回给客户端。我目前的想法是:
1、将客户端得各种请求都规范为统一的协议包,回报结果也规范为统一的协议包。
2、中间代理服务在线程中实现与外部服务的通讯。(工作线程池化)
3、中间代理服务中维护A、B、C、D、E、F服务请求队列,当客户端请求发上来后按照服务放置到对应的
队列中,同时在线程池中获取一个工作线程,将此队列指定给线程,由工作线程遍历队列处理直至队列中无请求。
4、结果返回给客户端由单独的线程进行打包回送。注:准备用 clientsocket/serversocket实现。请大家针对这个实现给些建议和指点,本人对网络通讯服务不是很熟悉。
目前想在客户端和外部服务中间挂接一个代理服务,
将客户端的所有请求统一由代理服务与外部服务来进行通讯交互,最后将结果返回给客户端。我目前的想法是:
1、将客户端得各种请求都规范为统一的协议包,回报结果也规范为统一的协议包。
2、中间代理服务在线程中实现与外部服务的通讯。(工作线程池化)
3、中间代理服务中维护A、B、C、D、E、F服务请求队列,当客户端请求发上来后按照服务放置到对应的
队列中,同时在线程池中获取一个工作线程,将此队列指定给线程,由工作线程遍历队列处理直至队列中无请求。
4、结果返回给客户端由单独的线程进行打包回送。注:准备用 clientsocket/serversocket实现。请大家针对这个实现给些建议和指点,本人对网络通讯服务不是很熟悉。
解决方案 »
- 问下简单问题。窗体上控件加载前的事件是什么??
- 100分相送求winxp与win2000在安装vss后不能互访问题
- 如何判断一个窗体是否是某个DLL创建的,或者如何判断DLL创建的窗体还没有关闭
- 紧急求一sql语句,谢谢各位
- 快过年了,散分,顺便问个问题,有Delphi用的GDI+源码文件吗?
- 求助:Delphi 6 做的东西,用了 QReport,怎么转换成 Delphi 7 的 rave 报表?
- 定义的菜单项的shortcut如何显示出来!一定给分!
- 我是一名初学者,我想知道怎样添加过程
- 小弟新手,请教个对我来说比较难的问题。如何在TChart中按要求画出曲线?
- 菜鸟求助(关于修改本地时间)
- 问两个小问题
- Delphi如何读取 java中的properties文件(紧急...在线等)
2.在clientsocket/serversocket 采用飞阻断方式,基本上没有太大的问题.
如果采用TCP传输方式,需要注意的是有可能一个客户端的多个请求会在一个TCP帧中出现.要做好多条数据协议的解析.
3.线程方面注意好同步.
socket非阻塞方式的话是不是容易出现粘包现象。
再看看其他人的建议
也欢迎未提到名的大牛给指点哈。