目前存在外部服务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实现。请大家针对这个实现给些建议和指点,本人对网络通讯服务不是很熟悉。
解决方案 »
- Delphi可以利用SSH登入Linux存取MYSQL嗎?
- access adoquery 删除不连续的大量数据
- 深夜发帖!急需解决的问题,请大家多多帮忙!(100分,如解决,另开帖给分!)
- 写asp组件调试时重新编译dll时,总是不能替换旧的dll,怎么样释放呢??
- 寻求一个叫drawmaster(symbol editor)的程序源代码
- 一个快捷键的问题
- 使用ADO问题
- 有做过USB通讯的吗?
- DBGrid的使用,在线等!
- DELPHI2007第一次装好intraweb没有,第二次三次序列号不对!
- 问两个小问题
- Delphi如何读取 java中的properties文件(紧急...在线等)
2.在clientsocket/serversocket 采用飞阻断方式,基本上没有太大的问题.
如果采用TCP传输方式,需要注意的是有可能一个客户端的多个请求会在一个TCP帧中出现.要做好多条数据协议的解析.
3.线程方面注意好同步.
socket非阻塞方式的话是不是容易出现粘包现象。
再看看其他人的建议
也欢迎未提到名的大牛给指点哈。