레코드 상태가 변경 될 때마다 알림을 위해 ASP.NET 서버에서 Android 디바이스로 메시지를 푸시해야합니다. 그래서 안드로이드 ADT 번들과 자바로 Eclipse를 사용하여 GitHub의 새로운 Microsoft SignalR Java-Client를 사용하고 싶습니다. https://github.com/SignalR/java-client Microsoft Java 클라이언트를 사용하여 SignalR 브로드 캐스트 메시지를받는 방법은 무엇입니까?
나는 Java 및 SignalR 새로운 오전
- . HTML로 작업하는 SignalR Hub 및 JavaScript 클라이언트가 있고 메시지를 보내고받을 수 있습니다. 그러나 나는 다음 단계로 가서 Java-Client가 Eclipse/Java/Android에서 작동하도록 할 수는 없다. 브로드 캐스트 메시지를 수신하기 위해 등록하는 방법을 모르겠습니다. HTML/JavaScript 페이지를 사용하여 메시지를 보낼 때 Eclipse의 에뮬레이터 인 Android 애플리케이션에서 메시지를받지 못합니다. 나는 내가 다음과 같은 ASP.NET SignalR Hub.cs 파일을 설정 한
수 있어요 :
자바 스크립트에서using System; using System.Collections.Generic; using System.Linq; using System.Web; using Microsoft.AspNet.SignalR; using Microsoft.AspNet.SignalR.Hubs; using System.Threading.Tasks; public class PtThroughputHub : Hub { public void SendAll(string message) { Clients.All.broadcastMessage(message); } public void SendGroup(string groupName, string message) { Clients.Group(groupName).broadcastMessage(message); } public Task JoinGroup(string groupName) { return Groups.Add(Context.ConnectionId, groupName); } public Task LeaveGroup(string groupName) { return Groups.Remove(Context.ConnectionId, groupName); } }
, 나는 또한에서 자동으로 생성되는 Hubs.js 파일을 사용할 수 있어요 허브를 통해 메시지를주고받는 ASP.NET Hub.cs.
<script src="Scripts/jquery-2.1.0.min.js"></script> <!--Reference the SignalR library. --> <script src="Scripts/jquery.signalR-2.0.3.min.js"></script> <!--Reference the autogenerated SignalR hub script. --> <script src="signalr/hubs"></script> $(function() { $.connection.hub.logging = true; // Declare a proxy to reference the hub. var ptThroughput = $.connection.ptThroughputHub; // Create a function that the hub can call to broadcast messages. ptThroughput.client.broadcastMessage = function (message) { alert(message); }; // Start the connection. $.connection.hub.start() .done(function() { alert('Successfully connected as ' + $.connection.hub.id); ptThroughput.server.joinGroup("Group1"); $('#btnSend').click(function() { // Call the Send method on the hub. ptThroughput.server.sendGroup('Group1', 'My Message Test Here!'); }) }) .fail(function() { $("#connection").text('Can not connect to SignalR hub!'); }); });
그러나 Eclipse/Java/Android에서 브로드 캐스트 메시지를 수신하려면 어떤 코드를 사용해야하는지 잘 모릅니다. 연결을 시작하고 다음 코드 예제의 끝에 connectionID를받을 수 있지만 거기에 머물러 있습니다. 어떻게 든 .on() 또는 .subscribe()를 사용해야합니까? 이 코드를 실행하면 연결 ID가 기록되지만 HTML/JavaScript 페이지에서 브로드 캐스트 메시지를 트리거 할 수 없습니다. 아무것도 수신되지 않으며 어디서나 오류가 발생하지 않습니다. 아무도 내가 여기에서 놓칠 수도있는 것을 압니까?
import microsoft.aspnet.signalr.client.SignalRFuture; import microsoft.aspnet.signalr.client.hubs.HubConnection; import microsoft.aspnet.signalr.client.hubs.HubProxy; import microsoft.aspnet.signalr.client.hubs.SubscriptionHandler; //Setup connection String server = "http://Servername/Applications/ThroughputMobile/"; HubConnection connection = new HubConnection(server); HubProxy proxy = connection.createHubProxy("ptThroughputHub"); //--HERE IS WHERE I AM NOT SURE HOW TO SET IT UP TO RECEIVE A NOTIFICATION--- //Setup to receive broadcast message proxy.on("broadcastMessage",new SubscriptionHandler() { @Override public void run() { Log.i("Test Message", "broadcastMessage received..."); } }); //--------------------------------------------------------------------------- //Start connection SignalRFuture<Void> awaitConnection = connection.start(); try { awaitConnection.get(); } catch (InterruptedException e) { //Log Connection ID Log.i("Test Message", "Connection ID = " + connection.getConnectionId());
그래서 다시 내가 proxy.on을 사용합니까() 방송 알림 또는 뭔가를 수신하도록 설정하는 방법? 그리고 어떤 문자열을 메서드에 전달합니까? "broadcastMessage"또는 아마도 "sendAll"내 경우에? 어떤 도움이라도 대단히 감사하겠습니다.
이보기 http://stackoverflow.com/ 여기
은 나 전체 안드로이드 백그라운드 서비스 코드 뒤에 도왔 무엇 a/42527962/1770868 –