zoukankan      html  css  js  c++  java
  • SocketIO Server

    package com.fd.socketio;
    
    import org.json.JSONObject;
    
    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 io.socket.client.Socket;
    
    public class MySocketIOServer {
    	public static void main(String[] args) {
    		Configuration config = new Configuration();
    		config.setHostname("localhost");
    		config.setPort(9098);
    		final SocketIOServer server = new SocketIOServer(config);
    		server.addConnectListener(new ConnectListener() {
    			@Override
    			public void onConnect(SocketIOClient client) {
    				String token = client.getHandshakeData().getUrlParams().get("token").get(0);
    //				if (!token.equals("87df42a424c48313ef6063e6a5c63297")) {
    //					client.disconnect();// 校验token示例
    //				}
    				System.out.println("sessionId:" + client.getSessionId()
    						+ ",token:" + token);
    			}
    		});
    		server.addEventListener(Socket.EVENT_MESSAGE, String.class,
    				new DataListener<String>() {
    					@Override
    					public void onData(SocketIOClient client, String data,
    							AckRequest ackSender) throws Exception {
    						System.out.println("client data:" + data);
    						server.getBroadcastOperations().sendEvent(Socket.EVENT_MESSAGE, "hi");
    					}
    				});
    		server.start();
    		
    		while(true){
    			try{
    				JSONObject obj = new JSONObject();
    				obj.put("message_type", "place_order");
    				
    				server.getBroadcastOperations().sendEvent("order_book", obj.toString());
    			}catch(Exception e){
    				
    			}
    			try {
    				Thread.sleep(3000);
    			} catch (InterruptedException e) {
    				// TODO Auto-generated catch block
    				e.printStackTrace();
    			}
    		}
    		
    //		try {
    //			Thread.sleep(Integer.MAX_VALUE);
    //		} catch (InterruptedException e) {
    //			// TODO Auto-generated catch block
    //			e.printStackTrace();
    //		}
    //		server.stop();
    	}
    }
    
  • 相关阅读:
    前端性能优化(2.1 代码分离——入口起点 entry point)
    前端性能优化(prefetch, preload, dns-prefetch, defer, async)
    Golang-函数
    Golang复合类型-map
    Golang复合类型-切片
    Golang复合类型-数组
    Golang基础语法-goto语句
    Golang基础语法-跳出循环
    vueRouter学习笔记
    通过ES6实现个模板操作
  • 原文地址:https://www.cnblogs.com/flyingcloude/p/10307224.html
Copyright © 2011-2022 走看看