什么OOD设计模式应该用于服务器-处理-客户端请求
What OOD design pattern should be used for a server-handle-client request ?
对于服务器-处理-客户端请求应该使用什么OOD设计模式?
我建议使用允许组件和应用程序之间交换信息(即消息)的消息交换模式。
消息交换模式(MEP)描述了通信协议建立或使用通信通道所需的消息模式。有两种主要的消息交换模式——请求-响应模式和单向模式。例如,HTTP是请求-响应模式协议,UDP是单向模式。
http://en.wikipedia.org/wiki/Messaging_pattern我说的对吗?更好的主意?
谢谢
由于非常熟悉UDP上的客户机-服务器应用程序,我通常使用观察者模式,这在从网络接收数据包时非常有用。每当来自远程机器的数据包时,套接字接收该消息并将其广播给所有侦听器。然后,侦听器将对接收到的数据执行任何操作,如下面的示例
所示public class MySocket {
private socket rawSocket;
private List<Listeners> dataListeners;
//.. Initialization
// This method gets called when data is received
public receive(byte[] data){
for(Listener listener : dataListeners) listener.processMessage(data);
}
public registerListener(Listener listener){
dataListeners.add(listener);
}
public unRegisterListener(Listener listener){
dataListeners.remove(listener);
}
}
// Interface listener to be implemented by whoever want to receive data from a socket
public interface Listener{
// Method to be implemented by any listener interested in receiving data
void ProcessMessage(byte[] data);
}
public class MyListener implements Listener{
@Override
public void processMessage(byte[] data){
// Do something with data...
}
}
// All bits put together
MySocket mySocket = new MySocket();
socket.registerListener(new MyListener());
// Class MyListener can now receive everything that comes from a remote machine through the socket "mySocket"
我希望这有帮助,问候,
您是否想使用UDP(单向),HTTP(无状态请求-响应)或其他机制取决于您的应用程序的行为。在需要实时消息传递(如算法交易)的情况下,UDP是发送数据包的时间变得更重要的数据包可靠性的首选。HTTP是web应用程序的发展方向。然而,这些都是消息传递协议。在应用程序层面上,我有一些想法。在客户机-服务器应用程序中,通常有许多客户机试图访问同一台服务器。因此,您的服务器应用程序应该能够并行响应多个客户机。因此,在应用程序级别上,您应该维护一个线程池,并且每个客户机请求都应该在线程池中的一个线程中处理。阅读链接,了解使用线程池而不是为每个客户端请求创建线程的更多好处。
相关文章:
- 提升 Asio TCP 服务器 处理多个客户端
- 如何使用 winsock32 处理多客户端
- 如何处理在 CPP 中连接到服务器的多个客户端?
- VC++ 异常处理在 x86 和 x64 上对于 IBPP / Firebird 客户端有所不同
- 从QT Web服务器处理多个客户端
- ZeroMQ REQ/REP如何处理多个客户端
- 使用ACE_dll动态加载客户端C++dll,错误为未处理的异常
- 当函数有很多参数和客户端代码只需更改其中时,如何处理情况就可以处理
- 在C++winsock中处理多个客户端的方法
- 多线程服务器在一个线程中处理多个客户端
- 处理客户端连接的最有效方法(套接字编程)
- c++tcp多线程客户端/服务器-如何与线程套接字处理程序进行通信
- 在Windows下处理多个客户端连接的最佳方法(不使用线程)
- 加速和 Windows 套接字 - 正确处理 TCP 客户端断开连接方案
- 客户端类构造函数中未处理的提升解析调用
- 改进服务器以处理多个客户端
- Thrift Java 客户端无法正确处理联合
- 什么OOD设计模式应该用于服务器-处理-客户端请求
- 处理客户端断开连接后服务器应用程序中的线程
- 将我的服务器响应char数组转换为wchar_t数组是处理客户端收到的服务器消息的正确方法吗?