server端
package com.test.server;
import com.corundumstudio.socketio.AckRequest;
import com.corundumstudio.socketio.Configuration;
import com.corundumstudio.socketio.SocketIOClient;
import com.corundumstudio.socketio.SocketIOServer;
import com.corundumstudio.socketio.listener.ConnectListener;
import com.corundumstudio.socketio.listener.DataListener;
import com.corundumstudio.socketio.listener.DisconnectListener;
import org.apache.commons.lang.StringUtils;
import org.apache.log4j.Logger;
/**
* Created by leo_wang on 2016/12/22.
*
* @describe
*/
public class SecketIoServer {
private static Logger logger = Logger.getLogger(SecketIoServer.class.getName());
// server
private static SocketIOServer server = null;
private void initServer(){
Configuration configuration = new Configuration();
configuration.setHostname("127.0.0.1");//IP地址
configuration.setPort(9090);//端口
configuration.setMaxFramePayloadLength(500 * 1024);//最大传输
configuration.setMaxHttpContentLength(500 * 1024);
server = new SocketIOServer( configuration );
server.start();
server.addConnectListener(new ConnectListener() {
@Override
public void onConnect(SocketIOClient client) {
// TODO Auto-generated method stub
}
});
server.addDisconnectListener(new DisconnectListener() {
@Override
public void onDisconnect(SocketIOClient client) {
//TODO Auto-generated method stub
System.out.println("连接关闭");
}
});
// server.addListeners("test",);
server.addEventListener("demo", String.class, new DataListener<String>() {
@Override
public void onData(SocketIOClient client, String data, AckRequest ackRequest) throws Exception {
String demo = data;
if (StringUtils.isNotBlank(demo)) {
System.out.println(demo);
logger.info("连接成功!key=" + demo);
client.sendEvent("demoOK", data);
}
}
});
}
public static void main(String agrs[]){
SecketIoServer server = new SecketIoServer();
server.initServer();
}
}
客户端
package com.test.client;
import io.socket.client.IO;
import io.socket.client.Socket;
import io.socket.emitter.Emitter;
import org.apache.log4j.Logger;
import org.json.JSONException;
import org.json.JSONObject;
import java.net.URISyntaxException;
import java.text.SimpleDateFormat;
import java.util.Date;
/**
* Created by leo_wang on 2016/12/22.
*
* @describe
*/
public class SocketIoClient {
private static Logger logger = Logger.getLogger(SocketIoClient.class.getName());
private Socket socket;
private boolean isConnected = false;
public void initSocket() throws URISyntaxException {
socket = IO.socket("http://127.0.0.1:9090");
socket.on(Socket.EVENT_CONNECT, new Emitter.Listener() {
@Override
public void call(Object... args) {
}
}).on("event", new Emitter.Listener() {
@Override
public void call(Object... args) {}
}).on(Socket.EVENT_DISCONNECT, new Emitter.Listener() {
@Override
public void call(Object... args) {
System.out.println("关闭连接");
}
});
socket.connect();
}
public void sendDemo() throws JSONException {
JSONObject obj = new JSONObject();
obj.put("name", "test");
SimpleDateFormat sdf = new SimpleDateFormat("yyyy年MM月dd日 HH时MM分ss秒");
String date = sdf.format(new Date());
obj.put("time", date);
socket.emit("demo", obj.toString());
// Receiving an object
socket.on("demoOK", new Emitter.Listener() {
@Override
public void call(Object... args) {
// System.out.println(args[0]);
JSONObject obj = null;
try {
obj = new JSONObject(args[0]+"");
} catch (JSONException e) {
e.printStackTrace();
}
System.out.println(obj);
}
});
}
public void disconnection(){
if (socket.connected()) {
System.out.println("需要关闭连接");
socket.disconnect();
}
}
public static void main(String agrs[]){
SocketIoClient client = new SocketIoClient();
try {
client.initSocket();
client.sendDemo();
client.disconnection();
} catch (URISyntaxException e) {
e.printStackTrace();
} catch (JSONException e) {
e.printStackTrace();
}
}
}
demo包等会发