我想在我的网络上创建一个 XMPP 服务器,然后用 python 向它发送消息,以便这个服务器可以重新启动网络上的目标计算机,现在我该如何设置这个服务器,我该如何做剩下的过程?tnx
user1613831
问问题
625 次
1 回答
0
我不确定您要在什么环境中执行此操作,但 XMPP 已在通常的聊天和即时消息程序(例如负载平衡器、rpc...)之外的环境中使用。
有几种方法可以做到这一点。我现在能想到的一种方法是使用Jabber RPC xep-0009,它说:
This specification defines an XMPP protocol extension for
transporting XML-RPC encoded requests and responses between two XMPP entities.
The protocol supports all syntax and semantics of XML-RPC except that
it uses XMPP instead of HTTP as the underlying transport.
明智的工作流程是如何使这项工作:
- 您将需要一个在 host-A 上启动并运行的 jabber 服务器
- 您将需要在网络中的其他主机上配置启动服务(例如在 host-B、host-C、host-D 上)。这个启动服务只不过是一个 xmpp 客户端守护进程,它会在主机启动时在后台启动。
- 这个配置为启动服务的 xmpp 客户端是特殊的,因为它们将接受传入的 rpc 调用(支持 XEP-0009)并在主机上执行接收到的命令。
- 收到的 RPC 命令可以是 的同义词
shutdown
,kill -9 xxxx
具体取决于您的具体需要。 - 最后,主机 C 上的 xmpp 客户端可以将一个或多个包装在一个节中的命令发送到运行在主机 B 上的 xmpp 客户端。
您可以使用现有的python xmpp 客户端库之一,并为您的用例简单地扩展它们的工作示例。您还需要检查有关如何根据您的操作系统配置启动服务的详细信息(例如update-rc.d for ubuntu或sc.exe for windows)
于 2012-09-04T16:06:07.170 回答