私は現在、クライアントにデータを転送する方法としてWebSocketを使用しなければならないプロジェクトに取り組んでいます。インフラストラクチャはこのように見えます。
クライアント - > Webサーバー - > Microsoft SQLデータベースMicrosoft SQLデータベースのWebSocketリスナー
私が最も理想的な状況は、このようなことだろうと思う: クライアントがサーバにソケットを開きます。 サーバーは、Microsoft SQLデータベースへのソケットを開きます。 データベースが更新されると(一部のデータが挿入されると)、DBはソケットにデータを書き込みます。 サーバーはデータをクライアントに書き戻します。 これはちょっと面倒かもしれませんが、多分クライアントから直接DBへのソケットを開くことができますか?
MSSQLデータベースが更新された場合、その情報を処理できるように、Webサーバーにソケットを自動的に通知する方法があるかどうかを知りたいと思います。
主な質問は本当にあります。私はこの仕事をどうやって作りますか?私は、Node.JSやSocket.IOのようなWebSocketで動作するいくつかのプロジェクトを見てきました。私はこの特定の機能を探す場所についての手がかりは見つけていませんが。私はNodeJS用のMSSQLデータベースのためのいくつかのむしろ不安定なドライバを見つけましたが、DBにソケットを作成し、データベースにポンピングされるとすぐにソケットを通してデータを送信する方法があるかどうかは分かりません。
私はまた、クライアントとdbの間のソケットを作ることは、今のところ問題ではないので、セキュリティが賢明ではないとは言えません。SQLはリアルタイムアプリケーションには向かない方法ですが、私は今、この問題の解決策を知っているが、深刻な性能の向上を疑う@tomfanningに
ありがとう:今:)
編集1のためにそれにバインドメートル。あなたに状況を描写させてください。 MSSQLデータベースでTriggerを使用する場合、私はこれが起こったと想像します。
状況1
- データベースはトリガーがCLRのスクリプトは、Webサーバーへの接続を行う
- を引っ張られ
- に更新されます。いずれか( は役に立たないオーバーヘッドである)ヘッダを開閉含む要求
- (S) が開くように有するソケットとすべてのトリガの近く又は 介してHTTPを介してWebサーバは、トリガを受信しクライアントの にデータを送信します。
- クライアントが更新されます。
そして今、同じシナリオを想像しますが、その後AJAX
で状況2:AJAXは
- は1000ミリ秒のタイムアウトは、クライアントに設定されていますクライアントタイムアウトが発生し、AJAXリクエストが発生する
- データベースでクエリが実行され、結果が返信されます。
- クライアントが更新されます。
状況1では、リクエストとソケットの送受信が必要です。状況2では、1つのリクエストのみが必要です。 AJAXリクエストのタイムアウトを10MSに設定すると、あたかもWebSocketのようなリアルタイムアプリケーションであるかのように見えますか?それとも、状況1が依然として効率的で、私は誇張していますか?
ありがとうございます!
WebSocketを介して安全な方法でdbにアクセスできる場合は、私も可能です。私があなたのデータベースにアクセスできるなら、私はルルツのためにそれをトロールするでしょう。セキュリティは冗談ではありません。 – Raynos
@Raynos私はセキュリティは冗談ではないと私は確かにそれを考慮に入れます。しかし、今のところこれを行う方法があるかどうかを知る必要があります。 –