1. 程式人生 > >基於網絡聊天室的社交遊戲 -- nodejs、express、socket.io-server

基於網絡聊天室的社交遊戲 -- nodejs、express、socket.io-server

ref https dom 後端 log allow 系列 max command

系列博文的傳送門:http://www.cnblogs.com/lastpairs/p/6993237.html

客戶端代碼github地址 https://github.com/xxyjskx1987/lastpairswebapp

服務器端代碼github地址 https://github.com/xxyjskx1987/lastpairsnodeserver

項目演示地址 http://www.tanmiba.com/

後端采用express進行搭建,express的使用方式如下

var express = require(‘express‘);

var app = express();

//設置跨域請求的域名
app.all(‘*‘, function
(req, res, next) { res.header("Access-Control-Allow-Credentials", "true"); res.header("Access-Control-Allow-Origin", ""); next(); }); //設置監聽端口 app.set(‘PORT‘, 3000); var server = app.listen(app.get(‘PORT‘),function(err){ if(err){ console.error(‘server error:%s‘,err && ess.message);
return; } console.log(‘server listening at :::‘,app.get(‘PORT‘)); });

在express中使用socket.io,並且通過域名限制ws連接,模擬跨域

var io = require(‘socket.io‘)(server);

//通過域名限制ws連接
 io.origins((origin, callback) => {
   if (origin !== ‘http://www.tanmiba.com‘) {
     return callback(‘origin not allowed‘, false);
   }
   callback(
null, true); }); //使用socket.io io.sockets.on(‘connection‘, function (socket) { console.log("connection"); socket.on(‘commonsay‘,function(data){ console.log("commonsay:" + data); //廣播 io.sockets.emit(‘commonsay‘, data); }); socket.on(‘disconnect‘,function(){ console.log("disconnect"); }); });

express中對session的簡單使用

var session = require(‘express-session‘);

app.use(session({
    resave: false,
    saveUninitialized: true,
  secret:‘recommand 128 bytes random string‘,
  cookie:{maxAge:60*1000*1000}
}));

基於網絡聊天室的社交遊戲 -- nodejs、express、socket.io-server