Socket.IO假套接字

时间:2015-05-12 19:35:10

标签: express socket.io

背景:我使用完整的Express,http.Server和Socket.IO来制作游戏。当每个人连接时,他们有一个套接字会话,我用它来在服务器和客户端之间发送信息。

我现在要做的是在我的游戏中添加AI,因为玩家数量最少,AI会让体验更丰富。但是,我不知道如何假装每个AI播放器都在套接字的另一端。有没有办法可以做一些类似' var fakeSocket = new Socket(...)'?

2 个答案:

答案 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变量,就像使用浏览器客户端一样。