最近开始搞socket.io,主要目的是可以用它实现跨平台的通信,比如手机与电脑,mac系统与windows系统。
关于socket.io的介绍我就不过多说明,大家找找就有。我随意找了一个一对一通信的client端和server端,将代码放在下面。
server端(server.js)
var fs = require('fs')
, http = require('http')
, socketio = require('socket.io');
var server = http.createServer(function(req, res) {
res.writeHead(200, { 'Content-type': 'text/html'});
res.end(fs.readFileSync(__dirname + '/client.html'));
}).listen(3000, function() {
console.log('Listening at: http://localhost:3000');
});
var users = {};
socketio.listen(server).on('connection', function (socket) {
//socketio.sockets.emit('connect',{hell:'boy'});
console.log('a user connected');
//console.log(socket.id);
//socket.nickName = "nickName";
//console.log(socket.nickName);
//发送私密消息
socket.on('private message', function (from,to,msg) {
console.log('I received a private message by ', from, ' say to ',to, msg);
if(to in users){
//console.log('to :' + to);
users[to].emit('to'+to, {mess:msg});
}
});
//新增用户
socket.on('new user',function(data){
if(data in users){
}else{
var nickname = data;
users[nickname]= socket;
}
//console.info(users);
});
//断开连接
socket.on('disconnect', function () {
console.log('user disconnected');
});
});
client端(client.html)
大体完事,运行只需要cmd中node server.js,在浏览器输入http://localhost:3000就可以用了。关键是node server.js这一步会有很多报错,什么没有socket.io、express等等,下面附上环境配置。
首先,装上node.js (http://www.nodejs.org/download/) 最好是下载安装包安装一下,这样就能直接在命令行输入node了。
接着,安装git,目的是使用npm,传送至https://git-scm.com/downloads,下载你的适配版本,下载安装,安装过程要去http://jingyan.baidu.com/article/90895e0fb3495f64ed6b0b50.html看一看需要注意什么
安装完成git,然后打开(管理员权限)git bash,输入:
git config --system http.sslcainfo /bin/curl-ca-bundle.crt
进行git配置
下一步获取npm这个好用的安装工具,在git bash中,输入:
git clone --recursive git://github.com/isaacs/npm.git
cd npm
node cli.js install npm -gf
这样就能完成npm的安装,到此,总算可以迂回到socket.io
再次在cmd中node server.js,根据提示缺少什么安装什么即可。
比如提示缺少express,那么久npm install express。有点耐心,它的支持模块比较多,应该是十个左右。
花点时间,待运行不报错以后,在浏览器输入http://localhost:3000,你会看到惊喜!
原创博文,转载请注明出处,谢谢!