nodejs с чего начать?
Я установил nodejs и запустил пару простых примеров, таких как открытие сервера в порту и прослушивание этого порта.
Тем не менее, я до сих пор не могу связать nodejs с веб-разработкой. поэтому, чтобы изучить и реализовать nodejs, я думаю о том, чтобы сделать крестики-нолики с помощью rails и nodejs. Это возможно?
Я предполагаю многопользовательскую игру в крестики-нолики, где, если человек 1 выбирает что-то, человек 2 автоматически видит это в своем браузере.
с чего мне начинать с чего-то подобного?
У меня есть опыт работы с рельсами, но нет опыта работы с nodejs или nodejs + rails.
4 ответа
Сначала просто попробуйте реализовать базовое приложение и почувствуйте структуру. Например, в Интернете есть несколько учебных пособий:
http://net.tutsplus.com/tutorials/javascript-ajax/learning-serverside-javascript-with-node-js/
Документация на http://nodejs.org/
Также есть 70-минутный скринкаст по peepcode, который стоит 9 $
https://peepcode.com/products/nodejs-i
На github также есть несколько приложений, на которые вы посмотрите. Чтение кода всегда лучше.
Я бы порекомендовал посмотреть на проект Socket.IO и Socket.IO-узел. Он использует HTML5 WebSockets, если он доступен, и автоматически и аккуратно (без вмешательства) возвращается к сокетам Flash и XHR-опросу при необходимости.
Вот скрипт для загрузки файлов:
mkdir socket.io
cd socket.io
git clone https://github.com/LearnBoost/Socket.IO.git --recursive
git clone https://github.com/LearnBoost/Socket.IO-node.git --recursive
Вот файл server.js:
var http=require('http');
var url=require('url');
var fs=require('fs');
var sys=require('sys');
var io=require('./socket.io/Socket.IO-node'); //adjust path as necessary...
var server=http.createServer(function(req,res){
res.writeHead(200,{'Content-Type':'text/html'});
res.write('Hello world');
res.end();
});
server.listen(8000);
var socket=io.listen(server);
socket.on('connection', function(client){
onConnection(client);
client.on('message', function(){
onMessage();
})
client.on('disconnect', function(){
onDisconnect();
})
});
function onConnection(client){
console.log('connection');
//client.connected; //tests if connected
//client.send("message");
//client.broadcast("message"); //send to all other conns
}
function onMessage(){
console.log('message');
}
function onDisconnect(){
console.log('disconnect');
}
});
Запустите указанный выше сервер с sudo node server.js
А вот ваш index.html для запуска в браузере:
<script src="./socket.io/Socket.IO/socket.io.js" type="text/javascript" charset="utf-8"></script> <!--Adjust path as necessary-->
<script>
var host="localhost";
var port=8000;
var socket=new io.Socket(host,{'port':port});
socket.connect();
socket.on('connect',function(){onConnect();})
socket.on('message',function(data){onMessage(data);})
socket.on('disconnect',function(){onDisconnect();});
function onConnect(){
///alert('connect');
}
function onMessage(data){
//alert('message');
}
function onDisconnect(){
//alert('disconnect');
socket.connect();
}
</script>
Я нашел Книгу Новичка Узла полезной. Однако, вероятно, это слишком просто для того, что вы хотите сделать.
Я нахожу пример гексов полезным в качестве ссылки для игры в реальном времени с использованием nodejs.