我们可以从WebService调用javascript函数吗?

时间:2013-10-17 09:53:46

标签: javascript sql sql-server web-services

我有一种情况,我必须从SQL Server调用一个javascript方法。我没有找到任何解决方案来做同样的事情。我发现有一件事我可以从SQL Server调用Web服务,但现在的问题是“我们可以从Web服务调用javascript函数(就像我们可以在aspx页面的文件后面编写代码那样)”吗?

请帮忙

4 个答案:

答案 0 :(得分:4)

嗯,这取决于你的意思。如果我没有弄错自由实时通信平台背后的人,xSockets已经能够使用SQL Server中的编译存储过程来使用xSockets来调用连接的客户端(例如使用WebSockets)。 我不是说这是你应该做的事情,我说“我认为他们已经做到了”。您可以在他们的页面上找到联系信息,或者只是在推特上使用#xsockets哈希推文,他们会回复。

答案 1 :(得分:0)

您可以使用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);
};

答案 2 :(得分:0)

您可以直接从网络服务“调用”javascript ...或者更准确地说,您可以使用发布/订阅模式从您的网络服务发布消息并在您的javascript中订阅它。

就像@Daniel说的那样,我们(XSockets)已经从编译的存储过程中调用了javascript,但那是几年前...我认为你更容易采用你从“调用”javascript的方法网络服务。

在webservice和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

也许有一些更简单的方法可以做到这一点......如果我对你正在做的事情多了解一点:)

答案 3 :(得分:-2)

不,您无法通过服务器上的网络服务在客户端上调用javascript函数。