html5中文学习网

您的位置: 首页 > 网站及特效实例 > javascript特效 » 正文

基于socket.io和node.js搭建即时通信系统_node.js_

[ ] 已经帮助:人解决问题

使用socket.io和nodejs搭建websocket服务器端JKvHTML5中文学习网 - HTML5先行者学习网

socket.io不仅可以搭建客户端的websocket服务,而且支持nodejs服务器端的websocket。JKvHTML5中文学习网 - HTML5先行者学习网

下面让我来介绍一下怎么安装配置nodejs.JKvHTML5中文学习网 - HTML5先行者学习网

进入http://nodejs.org/#download下载msi文件。一直点next安装。最后文件会自动安装在C:/nodejs目录下。JKvHTML5中文学习网 - HTML5先行者学习网

安装完成后,会自动配置环境环境变量。如果没有自动配置,自己手动在path处加上 ;C:/nodejs/。JKvHTML5中文学习网 - HTML5先行者学习网

安装完成后,需要配置npm来管理node.js的模块。JKvHTML5中文学习网 - HTML5先行者学习网

在window下安装npm需要安装git。JKvHTML5中文学习网 - HTML5先行者学习网

安装完git后,打开gitbush。执行下面几步:JKvHTML5中文学习网 - HTML5先行者学习网

git config --system http.sslcainfo /bin/curl-ca-bundle.crtgit clone --recursive git://github.com/isaacs/npm.gitcd npmnode cli.js install npm -gf

第一个是设置不会有任何提示,第二步会到github上下载npm会有下载文件和进度,第四步是安装npm到node.js会复制几个文件cmd文件和mode_modules文件夹到nodejs目录。JKvHTML5中文学习网 - HTML5先行者学习网

这样就配置好了npm。JKvHTML5中文学习网 - HTML5先行者学习网

如果需要安装什么模块直接输入npm install ***。JKvHTML5中文学习网 - HTML5先行者学习网

没有npm的或者windows用户可以使用github下载socket.io并且放入到node_modules文件夹中,具体配置可以参考文章:《nodejs教程:配置nodejs.exe的windows目录结构》JKvHTML5中文学习网 - HTML5先行者学习网

nodejs安装socket.ioJKvHTML5中文学习网 - HTML5先行者学习网

使用node插件管理包,运行下面的命令就可以安装成功socket.ioJKvHTML5中文学习网 - HTML5先行者学习网

npm install socket.io

用socket.io 实现的一个例子JKvHTML5中文学习网 - HTML5先行者学习网

客户端代码:JKvHTML5中文学习网 - HTML5先行者学习网

<html> <head>   <title></title>   <script src="../js/socket.io.client.js"></script>   <script type="text/javascript">     function doit() {       var socket = io.connect('http://localhost');       socket.on('news', function (data) {//接收到服务器发送过来的名为'new'的数据         console.log(data.hello);//data为应服务器发送过来的数据。         socket.emit('my new event', { my:'new data' });//向服务器发送数据,实现双向数据传输       });       socket.on('other', function (data) {//接收另一个名为'other'数据,         console.log(data.hello);         socket.emit('event1', { my:'other data' });       });     }   </script> </head> <body> <button id='btn' onclick="doit()">click me</button> </body> </html> 

socket.io.client.js可以https://github.com/LearnBoost/socket.io-client下载到本地,在<script src="..">指向本机的js库。JKvHTML5中文学习网 - HTML5先行者学习网

服务器用nodejs实现JKvHTML5中文学习网 - HTML5先行者学习网

server2.jsJKvHTML5中文学习网 - HTML5先行者学习网

var http= require('http'), io= require('socket.io'), express= require('express'); var app = express.createServer(), io = io.listen(app); app.listen(80); io.sockets.on('connection', function (socket) {  socket.emit('news', { hello: 'world' });//监听,一旦客户端连接上,即发送数据,第一个参数'new'为数据名,第二个参数既为数据  socket.on('my other event', function (data) {//捕获客户端发送名为'my other event'的数据   console.log(data.my);  });  socket.emit('other', { hello: 'other world' });//发送另一个数据  socket.on('evnet1', function (data) {//捕获另外一个数据   console.log(data.my);  }); }); 

测试结果,客户端可正常显示JKvHTML5中文学习网 - HTML5先行者学习网

服务器端显示结果:JKvHTML5中文学习网 - HTML5先行者学习网

C:/java/Nodejs>node server2.jsJKvHTML5中文学习网 - HTML5先行者学习网

注:代码要和npm_module在同一个目录下。不然会出现找不到socket.io module的错误。JKvHTML5中文学习网 - HTML5先行者学习网

(责任编辑:)
推荐书籍
推荐资讯
关于HTML5先行者 - 联系我们 - 广告服务 - 友情链接 - 网站地图 - 版权声明 - 人才招聘 - 帮助