即使没有请求,我也想用它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 应该如何知道服务,我应该在哪里定义他?(这需要跨域)
(变量$.connection.chat
未定义)
我确定我错过了一些事情,尤其是他如何通过 SignalR 链接服务和 JS的主要事情?