我有一種情況,我不得不從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