zoukankan      html  css  js  c++  java
  • java socket.io结合node.js

    用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一起同步通知的功能

  • 相关阅读:
    【笔记】:sort排序大法
    【模块】:torndb
    【模块】:CSV文件 数据可视化
    【模块】:Pygal 绘制直方图
    【模块】:matplotlib 绘制折线图
    【Django】:重构Admin
    【数据结构】:基础
    【数据结构】:排序练习
    【数据结构】:算法(二)
    【数据结构】:算法(一)
  • 原文地址:https://www.cnblogs.com/xiaofeilee/p/3785235.html
Copyright © 2011-2022 走看看