var express = require('express');
var app = express();
也可以简写:
var app = require('express')();
然后配置路由
app.get('/',function(req,res){
//code...
res.send('welcome to chatroom');
});
2.引入http“骨架”,载入express实例
var server = require('http').createServer(app);
顺手把监听的端口给配了~
server.listen(3000)
通常简单可以如上这么写,但是不是很好看,所以我们还可以做一些配置:
var port = process.env.PORT || 3000;
server.listen(port,function(){
console.log('server port on %d',port);
});
整理下:
var express = require('express');
var app = express();
var server = require('http').createServer(app);
var port = process.env.PORT || 3000;
app.get('/',function(req,res){
//code...
res.send('welcome to chatroom');
});
server.listen(port,function(){
console.log('server port on %d',port);
});
现在启动server
node index.js
打开你最爱的浏览器,输入
http://localhost:3000
一切顺利的话,可以看见
我们继续现在,我们引入socket.io,并传入http对象
var io = require('socket.io')(server);
(这里我的理解是socket.io依赖于http,所以需要将http传入socket.io)
现在我们注册一个连接
io.on('connection',function(socket){
console.log('a user connected');
});
socket.on('chat message', function (data) {
$('#message').append($('
').text(data));
});
现在我们再回到index.js中:
修改如下:
io.on('connection', function (socket) {
console.log('a user connected');
socket.on('chat message', function (data) {
io.emit('chat message',data);
});
socket.on('disconnect', function () {
console.log('a user left');
});
});
socket.on('chat message', function (data) {
io.emit('chat message',data);
});
总览
socket.io说白了就是在客户端与服务器端间来回通信,整明白谁是谁就好理解了。
index.js代码:
var express = require('express');
var app = express();
var server = require('http').createServer(app);
var io = require('socket.io')(server);
var port = process.env.PORT || 3000;
app.use(express.static(__dirname + '/public'));
app.get('/', function (req, res) {
res.sendFile('index.html');
});
io.on('connection', function (socket) {
console.log('a user connected');
socket.on('chat message', function (data) {
io.emit('chat message',data);
});
socket.on('disconnect', function () {
console.log('a user left');
})
});
server.listen(port, function () {
console.log('server start on port : %d',port);
});
main.js代码:
var socket = io();
$('button[type=submit]').click(function(){
socket.emit('chat message', $('#input').val());
$('#input').val('');
return false;
});
socket.on('chat message', function (data) {
$('#message').append($('