2015-09-05 483 views
0

我有一個使用rabbitmq代理的客戶端服務器應用程序。 客戶端連接到rabbitmq並將消息發送到服務器。在某些時候,如果服務器決定這個客戶端不應該連接到rabbitmq,我希望能夠從rabbitmq邊界強制斷開客戶端連接。 請注意,在我的情況下,我不想發送消息到客戶端斷開連接,在服務器端我想強制從rabbitmq斷開此客戶端。如何強制關閉客戶端連接rabbitmq

無法找到api來執行此操作。任何幫助appriciated。

回答

3

您可以通過兩種方式使用管理console plug-in

  1. 手動,去連接和「強制關閉」。

  • 通過HTTP API使用 「刪除」 /api/connections/name,這裏一個蟒例如:
  • import urllib2, base64 
    def calljsonAPI(rabbitmqhost, api): 
        request = urllib2.Request("http://" + rabbitmqhost + ":15672/api/" + api); 
        base64string = base64.encodestring('%s:%s' % ('guest', 'guest')).replace('\n', '') 
        request.add_header("Authorization", "Basic %s" % base64string); 
        request.get_method = lambda: 'DELETE'; 
        urllib2.urlopen(request); 
    if __name__ == '__main__': 
        RabbitmqHost = "localhost"; 
        #here you should get the connection detail through the api, 
        calljsonAPI(RabbitmqHost, "connections/127.0.0.1%3A49258%20-%3E%20127.0.0.1%3A5672"); 
    
    +0

    我想關閉以編程方式連接,HTTP API似乎可行,有沒有在正常的API的方式? – user424060

    +0

    修改了答案。@ user424060 – Gabriele