問題タブ [websocket++]
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.
c++ - fastcgi++ のセッション例を使用した websocket++
私は c++ の初心者で、Web プロトコルや WebSocket についてほとんど何も知らないので、ばかげているように思えるかもしれません。
私は 100% ajax の Web サイトを作成しており、WebSocket を組み込みたいと考えています。Fastcgi++ は ajax の要求に期待できるすべてのものですが、websocket はありません。websocket++ は多かれ少なかれ単純な#include
.
私はfastcgi ++を理解したと思います。ほとんどのアクションは、セッションデータ http://www.nongnu.org/fastcgipp/doc/2.1/a00005.html に対して発生Fastcgipp::Request
するFastcgipp::Http::Sessions
ようです。ただし、websocket https://github.com/zaphoyd/websocketpp/wiki/Creating-Applications-using-WebSocket--server::handler
を処理するには、websocket ++ で同じことを行う必要があると思いますが、今では海で迷っています。
C ++の経験がまったくない私を入力してください。仮想継承を使用する必要があると思いますが、わかりません。また、両方を適切に「サブクラス化」することさえできた場合、それらが互いに重複しないようにするにはどうすればよいですか?
websocket++ が fastcgi++ のセッション管理を使用する方法の基本的な例を示してください。
c++ - 「src/common.hpp:52:32:致命的なエラー:boost/shared_ptr.hpp:そのようなファイルまたはディレクトリはありません」websocket ++をビルドするとき
Linux や C++ については、ほとんど何も知りません。
私は一般的にこれらの指示に従って、ubuntu 12.10 http://piyushparkash.blogspot.com/2012/10/installing-boost-150-in-ubuntu-1210.htmlでブーストを構築しました。1.53.0 をダウンロードしました。
私は 1.2.2 の終わりのアドバイスに従い、./bootstrap.sh --exec-prefix=/usr/local
すべてのライブラリが必要だったので実行しました。
ここで概要src/common.hpp:52:32: fatal error: boost/shared_ptr.hpp: No such file or directory
を説明すると、このエラーが発生しますhttps://github.com/zaphoyd/websocketpp/wiki/Build-Library。make
Ifind / -name 'shared_ptr.hpp'
の場合、一覧表示されます
/root/boost_1_53_0/boost/asio/detail/shared_ptr.hpp /root/boost_1_53_0/boost/interprocess/smart_ptr/shared_ptr.hpp /root/boost_1_53_0/boost/smart_ptr/shared_ptr.hpp /root/boost_1_53_0/boost/serialization/shared_ptr .hpp /root/boost_1_53_0/boost/shared_ptr.hpp
最初のリンクで説明されているように、それらはデフォルトおよび指定されたディレクトリにインストールされるべきではありませんか?
このエラーを解決するにはどうすればよいですか?
(「すべての」ライブラリを取得するためにこれを行いましたhttps://askubuntu.com/questions/259590/libapache2-mod-fastcgi-not-available )
apt-cache libboost-all-dev
1.49
apt-cache search boost | grep dev
c++ - 1 つのクライアント メッセージが websocket++ 0.3X のすべてのメッセージ ハンドラーをトリガーしますか?
Websocket を学んだばかりですが、まだ C++ に無知です。
私は websocket++ 0.3X を使用していますが、これはまさに天の恵みです (1.0 が待ちきれません)。複数の同時接続があり、1 つのクライアントがサーバーにメッセージを送信した場合、メッセージは他のすべてのクライアントのハンドラーをトリガーしますか? そうでない場合、どうすればこれを行うことができますか?(これはマルチスレッドですか?)
私がやりたいことは明らかです。クライアントからのメッセージを介してデータベースを更新し、現在更新されたフィールドを表示している他のクライアントを更新します。
ソース:
c++ - websocket++ 0.3X でユーザーを追跡する方法
websocket++ 0.3X でユーザーごとのデータを追跡する方法はありますか?
彼らが何を見ているのか、何を彼らに送るべきなのかを追跡するために、私は彼らを識別できるようにしたいと思っています。例としてスタックを取り上げます: この質問を見ている間、websocket は、あなたがこの質問を見ていることをメモリに保持し、投票、新しいコメントと回答、および左上隅の StackExchange の更新。
また、ユーザーを識別できる必要があります。すでに websocket++ に隠れている websocket に固有のセッション ID はありますか? そうでない場合、websocket++ はどのようにユーザーを追跡しますか?
c++ - パイプ「アドレスシステム」
多分私はC ++でパイプを作成する方法を誤解しているのでhttp://linux.die.net/man/2/pipepipe
ですが、どこに送信または受信するかをどのように知っていますか?
ajaxページを介したデータベースの更新時に、そのajaxプログラムがWebsocketプログラムにメッセージを送信して、他の関連するすべてのユーザーを更新するようにしpipe
たい.2つのc ++プログラムが互いのクラス/同じLinuxボックスで機能しますか? .
パイプは 1 つだけで、すべてのプログラムがそれを読み取ってメッセージを検証しますか?
注: 私は fastcgi++ と websocket++ を使用しています。
c++ - この websocket++ の例を使用したスレッドセーフなユーザー データ
このwebsocket ++の例は、まさに私がその核心でやりたいことです。
ユーザーは で簡単に追跡できますがwebsocketpp::connection_hdl
、投票、コメント、回答、左上隅のメッセージなどを更新するために見ているページをスタックが追跡する方法と同様に、ユーザーに関するより多くの情報を保持する必要があります。
このコード例で .push() が失敗したり、ロックされている間に待機したりするstd::queue
のは、完全にスレッドセーフではないことがわかりましたか? push 用に最適化されたスレッドセーフな C/C++ キューで動作する方法を (おそらくスタック q を使用して) 見つけようとしています。さらに重要なことに、スレッドセーフなベクトルははるかに問題であることがわかりました C++のスレッドセーフなベクトルクラスboost::lockfree::queue
最初のリンクのコードから、ユーザー データ (現在表示されているスタックの質問など) をロックおよびブロックせずにスレッドセーフに追跡するにはどうすればよいですか?
c++ - websocketppのconnectionまたはconnection_ptrからネイティブソケット記述子を取得しますか?
connection
またはからネイティブソケット記述子を取得する方法はありますconnection_ptr
かwebsocketpp
?フレームをクライアントに送信する前に、TCP_CORKを設定する必要があります。Boost.Asioは初めてです。アドバイスしてください。
c++ - debug websocket++ broadcast_server.cpp ('owner_less' は 'std' のメンバーではありません)
Zaphoydは、Websocketbroadcast_server.cpp
サーバーの完璧なバックボーンのように見えます。これは、通信を中断しないように、実際のアクションのためのスレッドとのメッセージと接続をすばやく受け入れて送信できます。 https://github.com/zaphoyd/websocketpp/blob/experimental/examples/broadcast_server/broadcast_server.cpp
彼の単純なprint_server.cpp
例は簡単にコンパイルできます。ただし、でいくつかのコンパイル エラーが発生しbroadcast_server.cpp
ます。
私は c++ を初めて使用します。これらはおそらく単純な問題ですが、解決方法がわかりません。
'owner_less' is not a member of 'std'
? http://en.cppreference.com/w/cpp/memory/owner_less
template argument 2
error
上記が解決すれば解消されると思います。
'con_list' was not declared in this scope
いつそこにあるのprivate:
ですか?と同じ'm_connections'
?
'con_list' has not been declared
上記のエラーが発生すると、それはなくなると思います。
'it'
それが何について話しているのか、なぜその前にあるべきなのかわかりません;
。
バージョン
Ubuntu 12.10
gcc --version
gcc (Ubuntu/Linaro 4.7.2-2ubuntu1) 4.7.2
ブースト 1.53.0
余分#include
な
まだ何もない
-std=c++11
インストール方法(依存関係、実際のプログラムなど)
https://github.com/zaphoyd/websocketpp/wiki/Setup-0.3X-on-Ubuntu-12.10
代替歓迎
に代わるものがある場合はstd::owner_less
、投稿してください。
connection - WebSocketsPPv3ライブラリのクライアント接続制限
WebSocket ++ 0.3.xライブラリでは、アクティブな接続を持つことができるWebSocketクライアントの数の制限を決定するものは何ですか?スレッドごとに1つの接続ですか、それとも1つのスレッドで複数のWebSocketクライアント接続を処理できますか?後者の場合、1つのスレッドが保持できる接続の数はおおよそいくつですか?
基本的に、WebSocket++ライブラリが約25スレッドの空きがあるアプリケーションで処理できるクライアント接続の数を探しています。ライブラリのホームページは次のとおりです 。http ://www.zaphoyd.com/websocketpp
c++ - エラー C2182: '*': 型 'void' の不正な使用 c:\boost_1_53_0\boost\smart_ptr\intrusive_ptr.hpp
簡単にWindows 7ラップトップでwebsocket ++サーバーを開発しようとしています(vi
まだうまくいきません。常にftpしたくありません)。最後にUbuntu 12.10に移行します。
Visual C++ Win32 コンソール アプリケーション プロジェクトを使用しています。
include
ディレクトリを調べてwebsocketpp
、boost 1.53.0をインストールしました Windows に Boost.Build をインストールするにはどうすればよいですか? 、およびinclude
d & link
ed boost Boost リンク、Visual Studio およびバージョン管理。
http://www.zaphoyd.com/websocketpp/manual/building-program-websocketしようとしていますbuild
print_server.cpp
私がするとき、私は得るError 1 error C2182: '*' : illegal use of type 'void' c:\boost_1_53_0\boost\smart_ptr\intrusive_ptr.hpp Line:155 Column:1
ブースト コードは次のとおりです (2 行目は 155)。
このエラーが発生するのはなぜですか? どうすれば修正できますか?