In this paper, we propose a synchronous communication mechanism that can be used with asynchronous communication in an event-based communication framework (CM). The proposed synchronous communication mechanism supports directly synchronous communication between client and server, indirectly synchronous communication between two clients through server mediation, and indirectly one-to-many synchronous communication with multiple clients. In order to support synchronous communication, the CM uses the synchronization mechanism between the main thread and the processing thread while maintaining the multi-thread structure. The application can utilize both the asynchronous and the synchronous communication service of the CM together according to its requirements. For performance analysis, we compared the CM synchronous and asynchronous communication methods with qualitative and quantitative experiments, respectively. Through qualitative analysis, developing applications using synchronous services can more intuitively design application logic than asynchronous services. From the quantitative experiment, we also verified that the response delay time in the synchronous method is shorter than that in the asynchronous method although the difference in the response delay is not large.INDEX TERMS Asynchronous communication, client-server system, event-based communication framework, synchronous communication, thread synchronization. methods [7]-[9]. Even though there are researches supporting both the synchronous and asynchronous methods, they can be used only in limited situations [10]-[12], or it is not clearly described [13]- [16]. The communication method used by the communication middleware is determined not by the application requirements but by the communication channel management method or the type of the service in the middleware. Therefore, when the application selects middleware service, its communication method is also fixed. For example, as the communication middleware (CM) [2], [3] that is our previous work was developed as an event-based asynchronous communication framework, all communication services are supported asynchronously. However, because all kinds of services can be performed synchronously and asynchronously, they could become more flexible services if applications can choose one according to their requirements.In this paper, we propose a significantly extended version of CM that supports both synchronous and asynchronous communication methods [17]. We introduce the communication service provided by CM to application and eventbased asynchronous communication structure using multiple threads. In particular, we discuss not only the asynchronous communication method that was previously supported in CM, but also the one-to-one directly synchronous communication with the server, the one-to-one indirectly synchronous communication with the client, and the one-to-many indirectly synchronous communication method with multiple clients. To support the asynchronous communication, CM separates the main thread that ...