我有一种情况,我不得不从SQL Server调用一个javascript方法。我还没有找到任何解决方案来做同样的事情。我发现了一件事情,我可以从SQL Server调用Web服务,但现在问题是“我们可以从Web服务调用JavaScript函数(就像我们可以在代码后面的aspx页文件中所做的那样)”?我们可以从WebService调用JavaScript函数吗?
请帮
我有一种情况,我不得不从SQL Server调用一个javascript方法。我还没有找到任何解决方案来做同样的事情。我发现了一件事情,我可以从SQL Server调用Web服务,但现在问题是“我们可以从Web服务调用JavaScript函数(就像我们可以在代码后面的aspx页文件中所做的那样)”?我们可以从WebService调用JavaScript函数吗?
请帮
那么,这取决于你的意思。如果我没有弄错免费实时通信平台背后的家伙xSockets已经能够使用SQL Server中的已编译存储过程来使用xSockets向连接的客户端发送调用(例如使用WebSockets)。 我不是说这是你应该做的事,我说“我认为他们已经做到了”。你会在他们的页面上找到联系信息,或者只是在推特上用#xsockets哈希推特,他们会回应。
不,你不能从一个Web服务的服务器上调用客户的JavaScript函数。
您可以使用Server-Sent Events这样做,这在最新的浏览器中受支持。
的PHP:
header('Content-Type: text/event-stream');
header('Cache-Control: no-cache');
echo "id: " . time() . " " . PHP_EOL;
echo "data: $message" . PHP_EOL;
echo PHP_EOL;
ob_flush();
flush();
的JS:
var source = new EventSource('/php');
source.onmessage = function(e) {
console.log(e.data);
};
您可以从Web服务 “呼” 的JavaScript直接...或者更正确地讲过,你可以使用发布/订阅模式从您的webservice发布消息并在您的javascript中订阅它。
就像@Daniel说的,我们(XSockets)从一个编译存储过程调用了javascript,但那是几年前...我认为这会更容易让你采用这种方法“调用”javascript来自web服务。
要做到这一点web服务之间和JavaScript可能是这样的...... JAVASCRIPT
//Setup a subscription for the event 'foo'
conn.on('foo', function(data){
console.log('foo - some data arrived from the webservice', data);
});
C#(或VB,如果你愿意的话)
//Connect to the realtime server and the default controller generic
var conn = ClientPool.GetInstance("ws://127.0.0.1:4502/Generic", "*");
//We send an anonymous message here, but any object will work.
conn.Send(new { Message = "Hello JavaScript from C#" },"foo");
完整的示例here
也许有一些更简单的方法来做到这一点...如果我更了解你在做什么:)
要添加一些额外的信息... EventSource告诉浏览器保持与服务器的连接。如果连接丢失,浏览器将自动重新连接。 – Pappa