我需要在用c#编写的windows服务中调用chrome窗口中的javascript函数。
浏览器完全由我自己处理,所以我可以配置没问题。
例如,Windows服务是一个文件检查程序,当某个文件被更改时,必须弹出一个js警报。
- 编辑 -
以下适用于客户端到客户端的通信(服务器端代码)。 因此,当服务器上发生特定事件时,我可以在客户端上显示此信息(我希望评论会这样做)
using System;
using System.Threading.Tasks;
using Microsoft.AspNet.SignalR.Client;
using SignalR.Hosting.Self;
using SignalR.Hubs;
namespace Net.SignalR.SelfHost
{
class Program
{
static void Main(string[] args)
{
string url = "http://localhost:8081/";
var server = new Server(url);
server.MapHubs();
server.Start();
Console.WriteLine("SignalR server started at " + url);
Console.ReadLine();
// Clients[collection].flush("bericht: " + message + collection);
}
//public void PushMessage(string bericht)
//{
// var hubConnection = new HubConnection("http://localhost:8081/");
// var serverHub = hubConnection.CreateProxy("CollectionHub");
// serverHub.On("flush", message => System.Console.WriteLine(message));
// hubConnection.Start().Wait();
// serverHub.Invoke("Subscribe", "Product");
// string line = null;
// while ((line = bericht) != null)
// {
// serverHub.Invoke("Publish", line, "Product").Wait();
// }
// System.Console.Read();
//}
public class CollectionHub : Hub
{
public void Subscribe(string collectionName)
{
Groups.Add(Context.ConnectionId, collectionName);
Console.WriteLine("Subscribed to: " + collectionName);
//serverHub.Invoke("Publish", "dit is een eerste test", "Product").Wait();
}
public Task Unsubscribe(string collectionName)
{
return Clients[collectionName].leave(Context.ConnectionId);
}
public void Publish(string message, string collection)
{
Clients[collection].flush("bericht: " + message + collection);
}
}
}
}
答案 0 :(得分:1)
听起来像是在描述SignalR。
什么是ASP.NET SignalR?
ASP.NET SignalR是ASP.NET的新库 开发人员可以非常简单地添加实时网络 应用程序的功能。什么是"实时网络" 功能?它能够推动服务器端代码 实时地向连接的客户端发送内容。
您可能听说过WebSockets,这是一个支持的新HTML5 API 浏览器和服务器之间的双向通信。 SignalR 当它可用时,它将使用封面下的WebSockets 优雅地回归到其他技术和技术时 不是,而您的应用程序代码保持不变。
SignalR还为服务器提供了一个非常简单的高级API 客户端RPC(在客户端浏览器中调用JavaScript函数) 来自ASP.NET应用程序中的服务器端.NET代码) 添加用于连接管理的有用钩子,例如连接/断开 事件,分组连接,授权。
您可以使用ASP.NET SignalR做什么?
SignalR可用于添加任何 有点"实时" ASP.NET应用程序的Web功能。 虽然聊天通常用作示例,但您可以做更多的事情。 用户刷新网页以查看新数据或页面时的任何时间 实现Ajax长轮询以检索新数据,是候选者 使用SignalR。
它基本上做的是,让您可以在两个方向上访问客户端和服务器端功能,可以在asp.net website上找到它的一个简单示例,这将为您提供一个好主意关于如何使用它以及它能够做什么。
答案 1 :(得分:0)