問題タブ [mpd]

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.

0 投票する
1 に答える
98 参照

php - すべての情報を受信せずにソケット接続が閉じる

私は Linux での MPD と GMPC の数年間のファンです。最近、GMPC に似たルック アンド フィールの Web サイトを構築するタスクを引き受けました。教師として、私はAngular Webサイトの良い例を必要としています.これは素晴らしい「ペットプロジェクト」です.

list Artistコマンドを使用してすべてのアーティストを一覧表示するまで、すべてが順調に進んでい ます。MPC コマンド ライン ツールを次のように使用すると、次のようになります。

予想通りたくさんの線が引けます。行数を計算すると、たとえば 1500 人のアーティストが得られます。ただし、PHP とソケット (fsockopen) を使用すると、最大で 16384 しか受信されません。これにより、約 600 ~ 650 のアーティストがリストされます。EOF (feof 関数の使用) を検出し、読み取りを停止します。ソケットを再度開いても役に立ちません。

私は多くのことを試し、最後の MPD バージョン (0.21) をソースから開発マシンにインストールしました (万歳!)。の MPD 設定を無効に変更しましmax_output_buffer_sizeた。新しいバージョンが本当に (/usr/local/bin/mpd から) 開始されたかどうかを確認し、正しい構成ファイル (/etc/mpd.conf) を指定しました。

高レベルの PHP 関数から低レベルのソケットに切り替えました。これは私のコードです:

次のように呼び出されます。

エラーはありません。16384 (16Kb?) の後、正確にデータが来なくなります。読み続けると、ソケット エラー 104 (ピアによる接続のリセット) が発生します。

ここで何が問題なのですか?

こんにちはマーティン

0 投票する
1 に答える
107 参照

python - ブロックせずに mpd.idle() を使用して GTK から MPD をポーリングする方法

MPD のアイドル機能を使用して変更を待機し、Python を使用して GTK GUI に表示したいと考えています。問題は、MPD のアイドル機能を使用すると、GUI がブロックされて応答しなくなることです (曲を変更すると、GTK ウィンドウが応答しなくなります)。削除するself.mpd.idle()と機能しますが、関数は常に実行され続けるため、不要です。

これを解決する最善の方法は何ですか?

の最初のアプローチ:

thisを使用した の2番目のアプローチ。それでも同じ結果が得られます。

WORKINGGLib.idle_add()関数を 除外することが解決策のようです。しかし、これが「適切な」方法であるかどうかはわかりません。GLib.idle_add()ドキュメントに記載されているので、なぜそれを台無しにして使用しないのかわからないのは気分が悪いです。