我想signalR在android应用程序中集成但没有运气.我一直在寻找各种链接,但没有一个提供有关实现的正确信息.
我有以下问题.
SignalR 集成必须在服务/意图服务中完成?我已经添加了三个库,即signalr android,signalr client和gson而无法理解的代码是如何工作的,没有适当的文档可以理解的代码.
提出了一些问题但没有太多信息
Android Studio中的SignalR 无法在Android中使用SignalR实现p2p聊天
如果有人对本机应用程序有信号经验,那对我来说会非常有帮助.
更新
public class SignalRService extends Service {
private static final String TAG = "Service";
private HubConnection mHubConnection;
private HubProxy mHubProxy;
private Handler mHandler; // to display Toast message
private final IBinder mBinder = new LocalBinder();
private SharedPreferences sp;
@Override
public void onCreate() {
super.onCreate();
Utility.showLog(TAG, "Service Created");
sp = getSharedPreferences(Utility.SHARED_PREFS, MODE_PRIVATE);
mHandler = new Handler(Looper.myLooper());
}
@Override …Run Code Online (Sandbox Code Playgroud) 我让SignalR与Angular客户端一起工作,但proxy.on()如果在订阅事件之前建立连接,我就无法工作.
我的服务器方法pushToClient在两个集线器上调用客户端方法.
var connection1 = $.hubConnection(); //Works fine since I started connection AFTER subscribing
var proxy1 = connection1.createHubProxy('clientPushHub');
proxy1.on('sendToClient', function (message) {
console.log('This will work: ' + message);
});
connection.start();
var connection2 = $.hubConnection(); // Doesn't work when I start the connection BEFORE subscribing
var proxy2 = connection2.createHubProxy('clientPushHub');
connection2.start();
proxy2.on('sendToClient', function (message) {
console.log('This will not work: ' + message);
});
Run Code Online (Sandbox Code Playgroud)
如果我改变了事情,以便proxy2在开始之前订阅pushToClient connection2,它可以正常工作.还尝试在start().done()回调中执行'on'订阅,但这不起作用.
我已经下载并验证了这个示例在连接后订阅时的预期效果,并且这篇ASP.NET文章/部分明确提到如果不使用生成的代理,您可以按此顺序执行操作,我没有.
我有一个与信号 R 集成的基本 MVC 应用程序。我正在使用此应用程序跟踪在线用户。
以下是我的 Hub 课程
公共类 UserHub : Hub { static long counter = 0;
public override Task OnConnected()
{
//Update Count when User is connected
counter = counter+1;
Clients.All.UpdateCount(counter);
return base.OnConnected();
}
public override Task OnDisconnected(bool stopCalled)
{
counter = counter-1;
Clients.All.UpdateCount(counter);
return base.OnDisconnected(stopCalled);
}
Run Code Online (Sandbox Code Playgroud)
}
以下是我的javascript代码
$.connection.hub.logging = true;
//setup hubs
var userHub = $.connection.userHub;
$.connection.hub.start().done(function () {
});
//function to recieve data from server
userHub.client.UpdateCount = function (count) {
$('#counter').text(count);
}
Run Code Online (Sandbox Code Playgroud)
我也注册了 in startup.cs …