“Yeah It’s on. ”
java与nodejs的一次握手
重构公司OA主页的过程中,添加了BMP的审批流程,在重构过程中,添加了消息推送功能,也就是说,如果登陆人的OA主页打开,当别人进行了审批的时候,流程走到当事人的步骤的时候,当事人需要进入BMP审批流程,添加了后台推送的功能。
本地test
直接在本地通过socket进行通信。node.js作为服务器,java向node.js请求消息,node.js处理请求并返回。
步骤一:创建node服务器并监听socket端口
创建 app.js
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
var net = require('net');  
var HOST = '10.186.255.231';  
var PORT = 11111;  
  
net.createServer(function(socket) {  
    console.log('java已经连接: ' +  
        socket.remoteAddress + ':' + socket.remotePort);  
  
    socket.on('data', function(data) {  
        console.log('从java获得信息 : ' + data);  
        socket.write('node服务器已经收到信息\n' );  
    });  
  
    socket.on('close', function(data) {  
        console.log('关闭: ' + socket.remoteAddress + ' ' + socket.remotePort);  
    });  
}).listen(PORT, HOST);  //启动服务器
  
console.log('Server listening on ' + HOST +':'+ PORT);  
引入net模块
1
npm install net 
启动node服务并监听11111的端口状态
1
node app.js 如图所示:

步骤二:创建java客户端
在src下新建javatest文件夹创建test.java文件
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
package javatest;
import java.net.Socket;
import java.util.Scanner;
import java.io.BufferedReader;
import java.io.BufferedWriter;
import java.io.InputStreamReader;
import java.io.OutputStreamWriter;
import java.io.PrintWriter;
public class test{
    public static void main(String[] arges){
        try{
            Scanner scan = new Scanner(System.in);
            Socket socket = new Socket ("10.186.255.231", 11111);
            BufferedReader in = new BufferedReader (new InputStreamReader (socket.getInputStream()));
            PrintWriter out = new PrintWriter (
                    new BufferedWriter( new OutputStreamWriter( socket.getOutputStream ())), true);
            String str = scan.nextLine();
            while(!str.equals("quit")){
                out.println(str);
                System.out.println(in.readLine());
                str = scan.nextLine();
            }
            out.println(str);
            System.out.println(in.readLine());
            scan.close();
            socket.close();
        }catch(Exception e){
            System.out.println(e);
        }
    }
}
直接右击运行java文件 如图所示

node 服务器如图所示

测试是否成功握手
在java客户端的后台输入:
hello nodejs 后回车
java客户端如图所示

node如图所示

ip地址请忽略