Socket.IO 使得在所有的浏览器上都能打开WebSocket,提供内嵌的多路技术、水平扩展、自动的JSON编码(encoding)/解码(decoding)等多种强大的功能
安装socket.io
npm install socket.io
如何使用:
var io = require('socket.io');
如果用到了Express框架,根据版本不同,先前的配置代码就不一样,如下:
Express 3.x
var app = express()
, server = require('http').createServer(app)
, io = io.listen(server);
Express 2.x
var app = express.createServer()
, io = io.listen(app);
服务器端mySocket.io.js
var mime = require('mime'),
express = require('express'),
app = new express(),
http = require('http'),
server = http.createServer(app),
io = require('socket.io'),
io = io.listen(server),
fs = require('fs');
server.listen(80);
io.sockets.on('connection',function(socket){
socket.emit('news',{hello:'world'});
socket.on('my other event',function(data){
console.log(data);
});
});
app.get('/',function(req,res){
real_path = __dirname+'/mySocket.io.html'
res.writeHead(200,{'Content-Type':mime.lookup(real_path)});
res.end(fs.readFileSync(real_path));
});
客户端mySocket.io.html
<html>
<head>
<script src="http://ajax.googleapis.com/ajax/libs/jquery/1.7.2/jquery.min.js"></script>
<script src="/socket.io/socket.io.js"></script>
<script>
$(function(){
var socket = io.connect();
socket.on('connect', function () { //WebSocket打开
socket.on('news',function(data){
console.log(data);
socket.emit('my other event',{my:'data'});
alert('this my socket.io applcation.'+data.hello);
});
});
});
</script>
</head>
<body>
<h1>socket.io application。</h1>
</body>
</html>