码迷,mamicode.com
首页 > 编程语言 > 详细

java socket.io结合node.js

时间:2014-06-15 23:54:11      阅读:637      评论:0      收藏:0      [点我收藏+]

标签:java   http   com   文件   数据      

用java开发的socket.io,用户node.js作为服务器端,作用就是同步同步,比如开发网站的时候,当用户登录之后,可以实现当前浏览器多个窗口的页面都是登录后的效果。

首先需要安装socket.io,以及所需要的模块, 在项目里引用socket.io的js包, java代码构建socket.io的类,这个类主要参考https://github.com/Gottox/socket.io-java-client。

还需要安装node.js, 在项目文件的位置新建socketserver.js 用node.js运行  具体怎么实现  需要去学习怎么安装以及运行node.js。

socketserver.js里的内容根据自己的业务需要而定,但需要指出的是每个页面的请求都是唯一的,即使是同一个key去记录socket,那么也需要一个数组去记录,否则只能处理一个页面的请求,

比如var users = {};//存放用户数组 登录之后的函数

socket.on(‘initUser‘, function(key){
var sockets = users[key];
if (sockets){
sockets.push(socket);
}else{
sockets = [socket];
}
users[key] = sockets;//多个页面记录同意用户的不同页面的client
});

然后登录成功之后通知页面已经登录了

//当用户登录成功之后 推送给客户端提示登录成功
socket.on(‘do_login‘, function (jsonData) {//捕获客户端发送名为‘do_login‘的数据 如果业务需要 可以扩展一个callback的参数
var jsSockets = users[jsonData.userKey];
if (jsSockets){
console.log(‘jsSockets的个数:‘ + jsSockets.length);
for(var i =0; i<jsSockets.length; i++){
jsSockets[i].emit(‘login_success‘, jsonData.loginResult);//告诉客户端连接本次请求登录信息成功 broadcast属性面向多个connection都可以的
}
}
});

ok,这样就实现了socket.io与node.js一起同步通知的功能

java socket.io结合node.js,布布扣,bubuko.com

java socket.io结合node.js

标签:java   http   com   文件   数据      

原文地址:http://www.cnblogs.com/xiaofeilee/p/3785235.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!