我需要制作一个可以在互联网上运行的象棋多人游戏。虽然我已经掌握了基于GUI的象棋平台,但我对编程和网络编程都是初学者。
为了实现这个目标,我想使用第三方应用程序或软件(除了套接字编程)来让两台计算机上运行的Python程序进行通讯。我的想法是,每当有一位玩家移动棋子时,我希望将更新后的棋子坐标以字符串/列表的形式通过互联网发送到第二个玩家,以便他知道发生了什么。请问从哪里开始学习,或者需要阅读哪些相关资料?使用像telepathy这样的开源聊天工具来传递更新的字符串/坐标列表的想法可行吗?
聊天/即时通讯解决方案似乎是个好主意。
对于聊天/即时通讯,您可以使用Jabber/XMPP。您需要设置自己的服务器或找到一个为公众提供服务的托管方。设置Jabber服务器相当容易,例如您可以使用OpenFire。要连接到Jabber,您可以使用python xmpp库来发送和接收消息。这可能是最简单的方法,因为Jabber库往往非常易于使用。(我在Java和.NET中做过,但没有在Python中做过)。
另一种方法是使用类似于Twitter的消息传递方式。请参见Python Twitter library: which one?以获取支持直接消息传递(这是您所需的)的库的推荐。其优点是,一旦您学会了Twitter API,就不需要自己的服务器。
这是一个广泛而主观的问题,但我在Python中首选的网络通信协议是Twisted的Perspective Broker。它是事件驱动的,设置有点复杂,并需要控制程序的事件循环,但它非常好用。它允许客户端和服务器之间进行双向通信,并具有远程对象的便利性。