問題タブ [persistent-connection]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
php - PHP無限ループを使用したサーバーへの永続的な接続
データベースに新しい情報が追加されたら、Web サイトを最新の状態に保ちたいと考えています。Node.js
とComet Programming
を使用できませんJavascript's setInterval
。リクエストが多すぎるため、悪い考えのようです。
今、私はこのようなものを使用しています:
Javascript :
PHP:
これは良いアイデアですか?問題なく使えますか?多分誰かが永続的な接続を維持するためのより良い方法を知っていますか? (私のウェブサイトには約 500 人のオンライン ユーザーがいます)
php - PHP:PostgreSQLの持続的接続がすでに開かれているかどうかを知る方法は?
PHP.netのマニュアルによると、pg_pconnectは永続的な接続を作成するか、同じ接続文字列で既存の接続がすでに存在する場合は既存の接続を返します。
私が抱えている問題は、その呼び出しが実際に接続を作成するのか、それとも実際に同じものを返すのかを知りたいことです。たとえば、それが最初の接続である場合に備えて、プリペアドステートメントをロードします。
それは実際に可能ですか?
更新:この質問では、現在実行中のPHPスクリプトについて言及していません。接続がいつか(おそらく他のスクリプトによって)開かれたのか、このスクリプトがその接続を最初に開いたのか(たとえば、PostgreSQLサーバーをリセットしたため)を知りたいです。
php - 同じドメインに対して複数の永続的なソケットを開きますか?
ワーカー MPM を使用する Apache サーバーで、同じ TCP アドレスに対して複数の永続的なソケットを開くことは何とか可能ですか?
私が次のことをするとき:
2 つの独立したソケット リソースを取得しますが、基になる接続は同じです (書き込むと$SocketA
リモート レスポンスを読み取ることができ$SocketB
、その逆も可能であるため、わかります)。2 つの個別の永続的な接続を使用したいと考えています。
これは可能ですか?
wcf - 非 WCF (DataSnap) サーバーへの WCF クライアント アプリ永続接続
機能するもの
およびコンポーネントを使用する DataSnap Web サービスを Delphi-XE2 で構築しました。クライアントはサーバー ( Web サービス) に接続し、DataSnap サーバー メソッドを実行してデータを取得します。サーバーはすべての接続に使用します。スレッド変数にセッション情報を格納しているので、できれば使い続けたい...TDSServer
TDSHTTPService
TDSLifeCycle.Session
Session
Internet Explorerを使用して、DataSnap サーバーの認証とデータの取得を行うことができます。IE を 30 秒間アイドル状態にしない (またはサーバーから切断する) と、すべてのメソッド要求に対して同じ接続が再利用されます。
TIdHTTP を使用して DataSnap サーバーに接続する単純な Delphi アプリを使用できます。keep-alive
そのRequest.Connection
プロパティに追加すると、永久に接続されたままになり、すべてのメソッド呼び出しに対して1 つの接続が再利用されます。
.
問題
サード パーティの会社が、DataSnap サービスにアクセスするための WCF アプリを構築しています。サービスへの接続を1 つだけ使用するように WCF アプリを取得することはできません。最初の認証リクエストと最初のメソッド呼び出しは同じ接続を使用しますが、後続のリクエストは新しい接続を作成します。これnetstat
は、コンピューターで実行し、複数のソース ポートを使用してアプリからサービスへの新しい ESTABLISHED 接続を確認することから明らかです。新しい接続は、認証されたスレッドのセッション変数にアクセスできない DataSnap サーバーに新しいスレッドを作成します。
.
考えられる回避策
Invocation
私は、DataSnap サーバーをモデルに変更できることを知っています。これにより、クライアントごとに1 つの永続的な接続を維持する必要がなくなり、必要に応じてこれを行います。そうする前に、他の誰かが問題を解決する方法を知っているかどうかを確認するのが賢明だと思いました。
.
私の質問
WCF クライアント アプリが、新しい接続を作成せずに、すべてのメソッド呼び出しに使用する非 WCF サーバー (DataSnap サーバー) への単一の永続的な接続を作成することは可能ですか? これはどのように行われますか?Visual Studio の C# WCF プロジェクトに適切な [装飾] を追加するのと同じくらい簡単ですか?
どんな提案でも大歓迎です!
.
参考までに、私はサードパーティのコードにアクセスできないため、WCF コードのサンプルを提供できません。
php - PHPとmysqli:持続的接続とインタラクティブの違いは何ですか?
次の違いは何ですか?
と
またはこれさえ...
java - Android と Apache サーバー間の永続的な接続を作成する
Android フォン (Java) と apache を実行しているサーバーとの間の通信を作成する必要があります。私がやろうとしていることは、たくさんのメッセージが行き来することを必要とし、正確に「何を検索すればよいか」がわかりません。名前は Persistent Connection かもしれませんし、socket かもしれません。Android フォンのマイ コードは、一定のデータを (1 秒または 2 秒の速度で) 受信し、5 秒の速度で送信する必要があります (たとえば)。サーバーで単純なWebサーバーを使用してそのことを行い、毎回投稿でhttpページを開いてデータを取得し、jsonを受信する必要がありますか、それとももっと簡単で効率的な方法がありますか? ありがとう!
ios - HTTP/1.1 チャンク レスポンスをキャンセルし、永続的な接続を維持する
この質問は主に HTTP の質問です。私は iOS アプリに取り組んでいますが、この質問は iOS に固有のものではありません。
永続的な接続を使用したいのですが、明示的に Content-Length を送信する代わりに、HTTP 応答がチャンク転送タイプを使用するまで問題はありません。応答自体は正常に機能し、応答をキャンセルする必要がなければ機能します。この応答は、応答を送信するのに時間がかかる場合があり (数分かかる場合があり、最後の 0 チャンクを送信することはありません)、頻繁に、この要求 (および応答) をキャンセルして、同じ接続で新しい要求を送信したいと考えています。
HTTP/1.1 では、接続を閉じずにチャンクされた応答応答をキャンセルするにはどうすればよいですか?
私の現在の回避策は、永続的な接続を使用しないことですが、永続的な接続を使用する利点がすべて失われ、これらの要求の開始が大幅に遅くなります。
php - PHPでの永続的なデータベース接続
PHPでの永続的なデータベース接続について疑問があります。
同じホスト/ユーザーとの接続を必要とするすべてのPHPプロセスは、これを再確立することなくその接続を共有できるため、永続的な接続を使用すると効率的である可能性があることを理解しています。
最新の実装では、未知の接続状態の問題を克服する機能が導入されていることを理解しています。
だが!同じ接続を共有する1万のプロセスがある場合、一度に1つの接続しか使用できないため、アプリケーションのパフォーマンスが低下します。これは本当ですか、それとも私は間違っていますか?
php - Mysqli永続接続が機能しない
私はphp5.4.4を使用していますが、 mysqliとの持続的接続が機能しないようです。特に、このスクリプトを見てみましょう。
次に、スクリプトの実行中に、別のシェルを開いて次の手順を実行します。
これはエラーだと思います。PHPは15の異なる接続ではなく、1つの永続的な接続のみを開く必要があります。
それは本当ですか?
皆さんありがとう。
php - PHP の memcached 永続性が期待どおりに機能しない
PHP memcache クライアントと memcached サーバーの間で実際の永続性を有効にするために、さまざまな memcached ライブラリとプラグインのバージョンを試してみました。
問題は、既存の永続的な接続を再利用する代わりに、接続カウンターが上昇するように、依然として接続が開かれたり閉じられたりすることです。
Redhat マシンで最新のソースから memcached デーモンをコンパイルしました。バージョン memcached-1.4.14 を使用し、「#/opt/memcached/bin/memcached -vvvv」で開始しました
最新のソース バージョン memcached-2.0.1 からコンパイルした php プラグインも、最新の状態にするために libmemcached-1.0.9 に対してコンパイルしました。現在、libmemcached-1.0.10 に対してはコンパイルされません。
私のPHPスクリプトは次のようになります。
スクリプトを起動すると、出力にサーバーが追加されず、タイムアウト期間が経過した後にのみ表示されます。
しかし、接続カウンターはまだ上昇しており、クライアントが接続を作成し、サーバー側で永続的な接続が再利用されていると思います。
サーバー側では、永続性が使用されていることを示す詳細な出力が表示されます。
多くの着信接続がある高パフォーマンス環境で memcache を使用したいのですが、現在、接続量によって apache の子が強制終了されています。本当の永続性を有効にする方法はありますか?
使用ソフトウェア:
- Red Hat Enterprise Linux Server リリース 6.2 (サンティアゴ)
- PHP バージョン 5.3.3
- プリフォークの Apache/2.2.15
- Memcache サーバー 1.4.14
- libmemcached 1.0.9
- PHP memcached プラグイン 2.0.1