リクエストがなくても、クライアントのオンとボードのメッセージSignalR
を認識したい。(つまり、クライアントがサービスに最初のリクエストを送信した後、サービスはクライアントを認識してメッセージを送信できます)。Jquery
WCF service
これがこれを行うための最良の方法であるかどうかはわかりませんが、それが私が見つけたすべてです。(VS 2012 でのみサポートされている WebSocket を除く)。
Global
サービスのファイルに次の機能を追加しました。
protected void Application_Start(object sender, EventArgs e)
{
RouteTable.Routes.MapHubs();
}
Chat.cs を作成しました。
public class Chat : Hub
{
public void Send(string message)
{
// Call the addMessage method on all clients
Clients.All.addMessage(message);
}
}
JS
プロジェクトでは、次のファイルを追加しましJS
たSignalR
。
<script src="../JavaScript/jquery.signalR-1.1.2.min.js" type="text/javascript"></script>
<script src="/signalr/hubs" type="text/javascript"></script>
それを使用する関数:
function Chat() {
$(function () {
// Proxy created on the fly
var chat = $.connection.chat;
// Declare a function on the chat hub so the server can invoke it
chat.client.addMessage = function (message) {
alert(message);
};
// Start the connection
$.connection.hub.start().done(function () {
// Call the chat method on the server
chat.server.send('aa');
});
});
}
これは私にとって新しいことなので、質問がばかげている場合は申し訳ありませんが、JS の SignalR はどのように Service を知る必要がありますか? どこで彼を定義する必要がありますか? (これにはクロスドメインが必要です)
(変数$.connection.chat
は未定義です)
私はいくつかのことを見逃したと確信しています。