带有Node.js和socket.io的WebSockets
我使用canvas和Javascript构建了一个游戏,并且我想使用WebSockets和Node.js实现多人游戏功能
我对Node完全陌生,并且设法使用以下代码启动并运行基本Web服务器:
var http = require("http");
console.log("Server started at port 8888");
http.createServer(function(request, response) {
response.writeHead(200, {"Content-Type": "text/plain"});
response.write("Hello World");
response.end();
}).listen(8888);
它一切正常,当我在端口8888上导航到我的服务器IP时,我得到了“Hello World”的响应。我的问题是,这是我需要开始使用带有Node的WebSockets吗? 我听说有人说我仍然需要socket.io以便Node可以使用套接字,但是我不知道这是否只是一个库来帮助我使用套接字,或者如果Node实际上无法理解套接字。
服务器基本上必须记录所有连接的玩家,他们的分数,他们在画布上的位置等。客户端会偶尔轮询服务器(使用WebSockets)以获取每个人的位置,然后用返回的信息更新他们的画布。 我需要socket.io吗? 无论哪种方式,我会如何去做这件事?
谢谢。
你需要socket-io,因为这是一个建立在节点js之上的库。 Socket io创建了一个“套接字”,因此数据可以从Web应用程序传输到服务器,反之亦然。 节点js只是您的服务器的JavaScript接口。
有关于如何设置socket-io的信息:
在我的服务器上安装/设置Socket.IO
两周前,我把我的博客教程放在Node.js和WebSocket - 简单聊天教程上。
基本上,我将这个WebSocket模块用于Node.js,并且扩展了这个服务器模板(没有socket.io):
var WebSocketServer = require('websocket').server;
var http = require('http');
var server = http.createServer(function(request, response) {
// process HTTP request. Since we're writing just WebSockets server
// we don't have to implement anything.
});
server.listen(1337, function() { });
// create the server
wsServer = new WebSocketServer({
httpServer: server
});
// WebSocket server
wsServer.on('request', function(request) {
var connection = request.accept(null, request.origin);
// This is the most important callback for us, we'll handle
// all messages from users here.
connection.on('message', function(message) {
if (message.type === 'utf8') {
// process WebSocket message
}
});
connection.on('close', function(connection) {
// close user connection
});
});
如果你正在开发多人游戏,你可能有兴趣与Mozilla的Rob Hawkes谈谈HTML5游戏(他描述了他开发基于WebSocket的多人游戏的经验),还有一篇文章用Node.js开发多人游戏HTML5游戏(有一段关于共享Node.js和前端中的JavaScript)。
链接地址: http://www.djcxy.com/p/44727.html上一篇: WebSockets with Node.js and socket.io
下一篇: Online/Offline events work on Chrome but not in Firefox