Jetty9 WebSocket 客户端 - SessionFactory.createSession 导致 java.lang.NullPointerException

Posted

技术标签:

【中文标题】Jetty9 WebSocket 客户端 - SessionFactory.createSession 导致 java.lang.NullPointerException【英文标题】:Jetty9 WebSocket Client - SessionFactory.createSession causes java.lang.NullPointerException 【发布时间】:2014-01-15 19:59:49 【问题描述】:

我是 Jerry 的新手,正在尝试在 Jetty9 上实现 WebSocket 客户端。

我在 Jetty8 上看到了一个例子。

org.eclipse.jetty.websocket 类 WebSocketClient

http://archive.eclipse.org/jetty/8.0.0.v20110901/apidocs/org/eclipse/jetty/websocket/WebSocketClient.html

创建一个新的 WebSocketClient 实例是:

   WebSocketClientFactory factory = new WebSocketClientFactory();
   factory.start();

   WebSocketClient client = factory.newWebSocketClient();
   // Configure the client

   WebSocket.Connection connection = client.open(new
URI("ws://127.0.0.1:8080/"), new WebSocket.OnTextMessage()
   
     public void onOpen(Connection connection)
     
       // open notification
     

     public void onClose(int closeCode, String message)
     
       // close notification
     

     public void onMessage(String data)
     
       // handle incoming message
     
   ).get(5, TimeUnit.SECONDS);

   connection.sendMessage("Hello World"); 

但是,我从未见过 Jetty9 的文档。

到目前为止,参考

org.eclipse.jetty.websocket.common Interface SessionFactory

//----------------------------------------------
WebSocketSession createSession(URI requestURI,
                             EventDriver websocket,
                             LogicalConnection connection)
//----------------------------------------------

我试过了

 private WebSocketSessionFactory factory  = new WebSocketSessionFactory();

         try
            
                WebSocketSession session = factory.createSession(uri,
eventDriver, connection);
                RemoteEndpoint ep = session.getRemote();
            
         catch (Exception ex)
            
                System.out.println("=ERROR= " + ex);
                //=ERROR= java.lang.NullPointerException
            

        private EventDriver eventDriver = new EventDriver()
        
            @Override
            public WebSocketPolicy getPolicy()
            
                return null;
            

            //......................................

            @Override
            public void incomingFrame(Frame frame)
            

            
        ;

        private LogicalConnection connection = new LogicalConnection()
        
            @Override
            public void close()
            

            

            //...............................


            @Override
            public void resume()
            

            
        ; 

但我遇到了 java.lang.NullPointerException

我们如何实现 Jetty9 WebSocket 客户端??

感谢您的建议。

【问题讨论】:

【参考方案1】:

希望这有帮助:EventClient.java

【讨论】:

以上是关于Jetty9 WebSocket 客户端 - SessionFactory.createSession 导致 java.lang.NullPointerException的主要内容,如果未能解决你的问题,请参考以下文章

Jetty 9.2.x Websocket Server连接在使用Firefox而不是Chrome时连接后自动关闭

Java SE上的Websocket?

jetty 9,websockets 和关闭服务器端的 websocket 连接

Jetty9开发

Jetty WebSocket 代理

java WebSocket的实现以及Spring WebSocket