djk*_*ino 9 c# java asp.net-mvc android signalr
我正在尝试创建一个可以连接到我的基本SignalR Hub的Android应用程序.
它只是一个基本的Hub文件,我想测试一下,但到目前为止我没有运气.有人可以看看我做错了吗?每次我尝试运行它时,我会得到以下堆栈:
05-27 09:10:39.785 22247-22247/nl.vict.chatapp I/art? Rejecting re-init on previously-failed class java.lang.Class<microsoft.aspnet.signalr.client.transport.WebsocketTransport$1>
05-27 09:10:39.785 22247-22247/nl.vict.chatapp I/art? Rejecting re-init on previously-failed class java.lang.Class<microsoft.aspnet.signalr.client.transport.WebsocketTransport$1>
05-27 09:10:39.829 22247-22266/nl.vict.chatapp I/art? Rejecting re-init on previously-failed class java.lang.Class<microsoft.aspnet.signalr.client.transport.WebsocketTransport$1>
05-27 09:10:39.830 22247-22247/nl.vict.chatapp W/System.err? java.util.concurrent.ExecutionException: microsoft.aspnet.signalr.client.transport.NegotiationException: There was a problem in the negotiation with the server
05-27 09:10:39.830 22247-22247/nl.vict.chatapp W/System.err? at microsoft.aspnet.signalr.client.SignalRFuture.get(SignalRFuture.java:112)
05-27 09:10:39.830 22247-22247/nl.vict.chatapp W/System.err? at microsoft.aspnet.signalr.client.SignalRFuture.get(SignalRFuture.java:102)
05-27 09:10:39.830 22247-22247/nl.vict.chatapp W/System.err? at nl.vict.chatapp.MainActivity.onCreate(MainActivity.java:48)
05-27 09:10:39.831 22247-22247/nl.vict.chatapp W/System.err? at android.app.Activity.performCreate(Activity.java:5937)
05-27 09:10:39.831 22247-22247/nl.vict.chatapp W/System.err? at android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1105)
05-27 09:10:39.832 22247-22247/nl.vict.chatapp W/System.err? at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2251)
05-27 09:10:39.832 22247-22247/nl.vict.chatapp W/System.err? at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2360)
05-27 09:10:39.832 22247-22247/nl.vict.chatapp W/System.err? at android.app.ActivityThread.access$800(ActivityThread.java:144)
05-27 09:10:39.833 22247-22247/nl.vict.chatapp W/System.err? at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1278)
05-27 09:10:39.833 22247-22247/nl.vict.chatapp W/System.err? at android.os.Handler.dispatchMessage(Handler.java:102)
05-27 09:10:39.833 22247-22247/nl.vict.chatapp W/System.err? at android.os.Looper.loop(Looper.java:135)
05-27 09:10:39.833 22247-22247/nl.vict.chatapp W/System.err? at android.app.ActivityThread.main(ActivityThread.java:5221)
05-27 09:10:39.834 22247-22247/nl.vict.chatapp W/System.err? at java.lang.reflect.Method.invoke(Native Method)
05-27 09:10:39.834 22247-22247/nl.vict.chatapp W/System.err? at java.lang.reflect.Method.invoke(Method.java:372)
05-27 09:10:39.855 22247-22247/nl.vict.chatapp W/System.err? at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:899)
05-27 09:10:39.855 22247-22247/nl.vict.chatapp W/System.err? at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:694)
05-27 09:10:39.855 22247-22247/nl.vict.chatapp W/System.err? Caused by: microsoft.aspnet.signalr.client.transport.NegotiationException: There was a problem in the negotiation with the server
05-27 09:10:39.855 22247-22247/nl.vict.chatapp W/System.err? at microsoft.aspnet.signalr.client.transport.HttpClientTransport$1.onResponse(HttpClientTransport.java:86)
05-27 09:10:39.855 22247-22247/nl.vict.chatapp W/System.err? at microsoft.aspnet.signalr.client.http.java.NetworkRunnable.run(NetworkRunnable.java:82)
05-27 09:10:39.855 22247-22247/nl.vict.chatapp W/System.err? at java.lang.Thread.run(Thread.java:818)
05-27 09:10:39.855 22247-22247/nl.vict.chatapp W/System.err? Caused by: java.lang.NoClassDefFoundError: microsoft.aspnet.signalr.client.transport.WebsocketTransport$1
05-27 09:10:39.855 22247-22247/nl.vict.chatapp W/System.err? at microsoft.aspnet.signalr.client.transport.WebsocketTransport.start(WebsocketTransport.java:92)
05-27 09:10:39.855 22247-22247/nl.vict.chatapp W/System.err? at microsoft.aspnet.signalr.client.transport.AutomaticTransport.resolveTransport(AutomaticTransport.java:89)
05-27 09:10:39.855 22247-22247/nl.vict.chatapp W/System.err? at microsoft.aspnet.signalr.client.transport.AutomaticTransport.start(AutomaticTransport.java:143)
05-27 09:10:39.855 22247-22247/nl.vict.chatapp W/System.err? at microsoft.aspnet.signalr.client.Connection.startTransport(Connection.java:673)
05-27 09:10:39.855 22247-22247/nl.vict.chatapp W/System.err? at microsoft.aspnet.signalr.client.Connection.access$500(Connection.java:30)
05-27 09:10:39.855 22247-22247/nl.vict.chatapp W/System.err? at microsoft.aspnet.signalr.client.Connection$3.run(Connection.java:373)
05-27 09:10:39.855 22247-22247/nl.vict.chatapp W/System.err? at microsoft.aspnet.signalr.client.Connection$3.run(Connection.java:350)
05-27 09:10:39.855 22247-22247/nl.vict.chatapp W/System.err? at microsoft.aspnet.signalr.client.SignalRFuture.setResult(SignalRFuture.java:73)
05-27 09:10:39.856 22247-22247/nl.vict.chatapp W/System.err? at microsoft.aspnet.signalr.client.transport.HttpClientTransport$1.onResponse(HttpClientTransport.java:82)
05-27 09:10:39.856 22247-22247/nl.vict.chatapp W/System.err? ... 2 more
Run Code Online (Sandbox Code Playgroud)
这是我的代码:
毂:
public class ChatHub : Hub
{
public void Send(string name, string message)
{
Clients.All.addNewMessageToPage(name, message);
}
}
Run Code Online (Sandbox Code Playgroud)
主要活动(Android Studio)
ListView listView;
HubConnection connection;
HubProxy proxy;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
listView = (ListView)findViewById(R.id.listView);
String[] values = new String[]{
"Testvalue1",
"Testvalue2",
"Testvalue3"
};
ArrayAdapter<String> adapter = new ArrayAdapter<String>(this, android.R.layout.simple_expandable_list_item_1,android.R.id.text1,values);
listView.setAdapter(adapter);
connection = new HubConnection("http://www.voffice.nl/chat");
proxy = connection.createHubProxy("chatHub");
SignalRFuture<Void> awaitConnection = connection.start();
try{
awaitConnection.get();
}catch (InterruptedException e){
e.printStackTrace();
}catch (ExecutionException e){
e.printStackTrace();
}
}
Run Code Online (Sandbox Code Playgroud)
提前致谢,
凯文
-
编辑:
我检查了服务器并启用了websockets.
经过几天的努力,我是如何让它发挥作用的:
java_websocket.jar
您之前构建的替换 signalr-client-sdk/build.gradle
compile 'org.java-websocket:java-websocket:1.3.1'
和:
compile files('libs/java_websocket.jar')
到这里找到 http:// 到 ws:// url https://github.com/SignalR/java-client/issues/63的修复,在代码中更改它
构建 signalr 客户端并将其包含在您的项目中,您还必须包含java_websocket.jar您在第一步中构建的客户端,因此您的 gradle 文件如下所示:
compile 'client.signalr.aspnet.microsoft.signalr_client_sdk_android:signalr-client-sdk-android-release:1.0.0@aar'
compile files('libs/signalr-client-sdk.jar')
compile files('libs/java_websocket.jar')
不要将任何查询字符串传递给 HubConnection,否则它将挂起!
如果您需要传递标头(如授权令牌),则必须修复更多代码,有对此的拉取请求: https: //github.com/SignalR/java-client/pull/64
| 归档时间: |
|
| 查看次数: |
2492 次 |
| 最近记录: |