背景:我使用完整的Express,http.Server和Socket.IO来制作游戏。当每个人连接时,他们有一个套接字会话,我用它来在服务器和客户端之间发送信息。
我现在要做的是在我的游戏中添加AI,因为玩家数量最少,AI会让体验更丰富。但是,我不知道如何假装每个AI播放器都在套接字的另一端。有没有办法可以做一些类似' var fakeSocket = new Socket(...)'?
答案 0 :(得分:3)
您还可以使用“socket.io-client”
打开从服务器到服务器的客户端连接var clientIo = require('socket.io-client');
var socket = clientIo.connect(...);
然后像普通套接字一样使用它来为游戏添加新玩家。
答案 1 :(得分:2)
您的AI播放器可以在您的服务器上运行,只需通过webSocket连接连接到服务器(在同一个盒子上)。您的服务器甚至不需要知道他们是AI玩家还是真正的玩家。就服务器而言,它们是来自某个地方的webSocket连接(恰好它们中的一些来自同一个盒子而不是远程浏览器)。通过这种方式,服务器不需要像常规玩家那样对待AI玩家(除非你选择为每个玩家调用不同的逻辑而不是另一个)。
所以,没有必要使用假套接字。您可以更轻松地使用真正的webSocket连接,然后不需要套接字假装。
有关如何从服务器创建socket.io连接,请参阅此其他问题/答案:
Is it possible to set up a socket.io client running (server-side) on a node.js server?
总之,您使用socket.io-client
模块:
var io = require('socket.io-client');
然后,使用io
变量,就像使用浏览器客户端一样。