2013-02-27 1 views

답변

1

이 부두 9 시작을 참조하십시오.

package org.eclipse.jetty.websocket.server.examples; 

import java.io.IOException; 

import org.eclipse.jetty.websocket.api.UpgradeRequest; 
import org.eclipse.jetty.websocket.api.UpgradeResponse; 
import org.eclipse.jetty.websocket.server.examples.echo.BigEchoSocket; 
import org.eclipse.jetty.websocket.servlet.WebSocketCreator; 
import org.eclipse.jetty.websocket.servlet.WebSocketServlet; 
import org.eclipse.jetty.websocket.servlet.WebSocketServletFactory; 

@SuppressWarnings("serial") 
public class MyCustomCreationServlet extends WebSocketServlet 
{ 
    public static class MyCustomCreator implements WebSocketCreator 
    { 
     @Override 
     public Object createWebSocket(UpgradeRequest req, UpgradeResponse resp) 
     { 
      String query = req.getQueryString(); 

      // Start looking at the UpgradeRequest to determine what you want to do 
      if ((query == null) || (query.length() <= 0)) 
      { 
       try 
       { 
        // Let UPGRADE request for websocket fail with 
        // status code 403 (FORBIDDEN) [per RFC-6455] 
        resp.sendForbidden("Unspecified query"); 
       } 
       catch (IOException e) 
       { 
        // An input or output exception occurs 
        e.printStackTrace(); 
       } 

       // No UPGRADE 
       return null; 
      } 

      // Create the websocket we want to 
      if (query.contains("bigecho")) 
      { 
       return new BigEchoSocket(); 
      } 
      else if (query.contains("echo")) 
      { 
       return new MyEchoSocket(); 
      } 

      // Let UPGRADE fail with 503 (UNAVAILABLE) 
      return null; 
     } 
    } 

    @Override 
    public void configure(WebSocketServletFactory factory) 
    { 
     factory.setCreator(new MyCustomCreator()); 
    } 
} 
+0

저는 factory.setCreator에 대해 몰랐습니다. 정확히 내가 무엇을 찾고 있었는지. 감사. – fso