In recent years there have been two major but independent trends: the popularity of social networking applications and the adoption of smartphones. As a result, a new trend of networks labeled Mobile Social Networks (MSN) has emerged and attracted considerable attention from the academic and industrial communities. Middleware for MSN facilitates the design and development of new applications on top of the middleware. But due to the resource constraints of smartphones, middleware for MSN presents a number of new challenges. The middleware for MSN should address the constraints of mobile devices, i.e., limited power sources, low memory capabilities, limited processing power, and heterogeneity. In this paper, we provide a detailed review of the existing middleware projects for MSN and identify the major approaches and challenges for designing them. Furthermore, we present an exhaustive comparative study of different middleware projects for MSN. We also discuss some open research issues in this important area of research.