Java 在Android上使用nv websocket客户端
我正在使用Android Studio 2.2.3/JRE1.8.0_76在Android上测试nv websocket客户端 我的代码基本上与README.md文件中的echo示例应用程序相同。该类在Java8Update111下运行良好,但在AndroidStudio下运行失败。我在调试模式下运行代码,但在以下位置失败: 来源:com/neovisioniers/ws/client/Address.java:36Java 在Android上使用nv websocket客户端,java,android,websocket,Java,Android,Websocket,我正在使用Android Studio 2.2.3/JRE1.8.0_76在Android上测试nv websocket客户端 我的代码基本上与README.md文件中的echo示例应用程序相同。该类在Java8Update111下运行良好,但在AndroidStudio下运行失败。我在调试模式下运行代码,但在以下位置失败: 来源:com/neovisioniers/ws/client/Address.java:36 InetSocketAddress toInetSocketAddress()
InetSocketAddress toInetSocketAddress()
{
return new InetSocketAddress(mHost, mPort);// mHost = "echo.websocket.org", mPort = 80.
}
Android Studio中的错误消息:
Method threw 'java.lang.NullPointerException' exception. Cannot evaluate java.net.InetSocketAddress.toString()
知道我做错了什么吗
我的测试班:
public class TestWS {
private String m_msg;
private String m_uriStr; // = "ws://echo.websocket.org";
private static final int TIMEOUT = 5000;
public TestWS(String uriStr) {
m_uriStr = uriStr;
m_msg = "";
}
public void RunTest() {
try {
// Connect to the echo server.
WebSocket ws = connect();
ws.sendText("This is a test");
Thread.sleep(1000); // Make sure m_msg is updated before function return.
ws.disconnect();
}
catch(Exception ex)
{
m_msg += "Exception: " + ex.getMessage(); // getMessage() returns null.
}
}
private WebSocket connect() throws IOException, WebSocketException
{
return new WebSocketFactory()
.setConnectionTimeout(TIMEOUT)
.createSocket(m_uriStr)
.addListener(new WebSocketAdapter() {
// A text message arrived from the server.
@Override
public void onTextMessage(WebSocket websocket, String message) {
m_msg += "Echo: " + message;
}
})
.addExtension(WebSocketExtension.PERMESSAGE_DEFLATE)
.connect(); // <= failed in this function.
}
public String GetMsg(){
return m_msg;
}
}
公共类TestWS{
私有字符串m_msg;
私有字符串m_uriStr;//=“ws://echo.websocket.org”;
私有静态最终整数超时=5000;
公共TestWS(字符串uriStr){
m_uriStr=uriStr;
m_msg=“”;
}
公共无效运行测试(){
试一试{
//连接到echo服务器。
WebSocket ws=connect();
ws.sendText(“这是一个测试”);
Thread.sleep(1000);//确保在函数返回之前更新了m_msg。
ws.disconnect();
}
捕获(例外情况除外)
{
m_msg+=“异常:”+ex.getMessage();//getMessage()返回null。
}
}
私有WebSocket connect()引发IOException,WebSocketException
{
返回新的WebSocketFactory()
.setConnectionTimeout(超时)
.createSocket(m_uriStr)
.addListener(新的WebSocketAdapter(){
//从服务器收到一条文本消息。
@凌驾
公共void onTextMessage(WebSocket WebSocket,字符串消息){
m_msg+=“回声:”+信息;
}
})
.addExtension(WebSocketExtension.PERMESSAGE_DEFLATE)
.connect();//我在一条关于这个问题的评论中发现,这个库需要JDK8,因此不会在Android上运行。有人知道这是不是真的吗?你找到解决方案了吗?在我的例子中,我试图用不同的地址重新连接,但出现了错误,但消息为空,所以,不知道会发生什么……不,我没有找到任何解决方案,不得不切换到其他地址o另一个web套接字客户端。