0

I have a situation where I have to call a a javascript method from SQL Server. I haven't found any solution to do the same. I found one thing that I can call web service from SQL Server but now the problem is "Can we call javascript function from web service (like we can do in code behind file of aspx page)"?

Please help

4

4 回答 4

4

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

于 2013-10-17T10:13:50.890 回答
0

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

就像@Daniel 说的那样,我们(XSockets)已经从编译的存储过程中调用了 javascript,但那是几年前的事了……我认为你采用从 web 服务“调用”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");

完整的例子在这里

也可能有一些更简单的方法来做到这一点......如果我对你在做什么有更多的了解:)

于 2013-10-21T13:51:26.320 回答
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);
};
于 2013-10-17T14:13:01.580 回答
-2

不,您不能从服务器上的 Web 服务调用客户端上的 javascript 函数。

于 2013-10-17T09:55:34.317 回答