问题标签 [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.

0 投票
1 回答
1022 浏览

c++ - websocket++ 使用 fastcgi++ 的会话示例

我是 C++ 的新手,对 web 协议或 websockets 几乎一无所知,所以这看起来很荒谬。

我制作了 100% ajax 的网站,并希望包含 websockets。Fastcgi++ 是我对 ajax 需求所希望的一切,但它没有 websockets,我选择 websocket++ 而不是 libwebsockets,因为 websocket++ 或多或少是一个简单的#include,所以我认为我可以将它合并到 fastcgi++ 中。

我想我已经弄清楚了 fastcgi++,看起来大部分操作都发生在Fastcgipp::Request会话Fastcgipp::Http::Sessions数据http://www.nongnu.org/fastcgipp/doc/2.1/a00005.html中;但是,我认为我必须对 websocket++ 做同样的事情server::handler来处理 websocket https://github.com/zaphoyd/websocketpp/wiki/Creating-Applications-using-WebSocket--,现在我迷路了。

输入我对 c++ 的完全缺乏经验:我想我必须使用虚拟继承,但我不知道。另外,如果我什至可以正确地将两者“子类化”,我如何确保它们不会相互超越?

请向我展示 websocket++ 如何使用 fastcgi++ 的会话管理的基本示例。

0 投票
3 回答
16129 浏览

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当我make在这里概述时出现此错误https://github.com/zaphoyd/websocketpp/wiki/Build-Library

当 I 时find / -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/序列化/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

0 投票
1 回答
284 浏览

c++ - 1 条客户端消息会触发 websocket++ 0.3X 中的所有消息处理程序吗?

我刚刚学习了 websockets,但对 c++ 还是一无所知。

我正在使用 websocket++ 0.3X,它是名副其实的天赐之物(等不及 1.0)。如果有多个并发连接,并且一个客户端向服务器发送消息,该消息会触发所有其他客户端的处理程序吗?如果没有,怎么办?(这是多线程吗?)

我想要做的是显而易见的:通过来自客户端的消息更新数据库,然后更新当前查看更新字段的任何其他客户端。

资料来源:

http://www.zaphoyd.com/websocketpp/

https://github.com/zaphoyd/websocketpp/wiki

0 投票
2 回答
418 浏览

c++ - 如何使用 websocket++ 0.3X 跟踪用户

有没有办法使用 websocket++ 0.3X 跟踪每个用户的数据?

我希望能够识别他们,以便跟踪他们正在查看的内容以及应该发送给他们的内容。以堆栈为例:当您查看此问题时,websocket 可以(我认为确实如此)记住您正在查看此问题并向您发送适当的更新,如投票、新评论和答案,以及StackExchange 更新在左上角。

此外,用户需要能够识别。websocket 中是否存在已经隐藏在 websocket++ 中的会话 ID?如果没有,websocket++ 如何跟踪用户?

0 投票
1 回答
249 浏览

c++ - 管道“地址系统”

也许我误解了如何在 c++ 中制作管道,因此http://linux.die.net/man/2/pipe,但是如何pipe知道从哪里发送或接收?

在通过 ajax 页面更新数据库时,我希望该 ajax 程序向我的 websocket 程序发送一条消息以更新所有其他相关用户,并且建议pipe最好使用 2 个 c++ 程序如何调用彼此的类/在同一个 linux 机器上的功能?.

是否只有一个管道,所有程序都读取它并验证消息?


注意:如果有帮助,我正在使用 fastcgi++ 和 websocket++。

0 投票
1 回答
490 浏览

c++ - 使用此 websocket++ 示例的线程安全用户数据

这个websocket++ 的例子正是我想要做的核心。

虽然可以很容易地跟踪用户websocketpp::connection_hdl,但我需要保留更多关于他们的信息,就像堆栈可能如何跟踪我们正在查看的页面以更新投票、评论、答案、左上角的消息等。

我刚刚发现在此代码示例中锁定时 .push() 是否失败或等待std::queue不是完全线程安全的?并且我将找到一种方法(可能使用堆栈 q)在为 push 优化的线程安全 C/C++ 队列中工作。更重要的是,我刚刚发现线程安全向量更麻烦Threadsafe Vector class for C++boost::lockfree::queue

从第一个链接中的代码,如何在不锁定和阻塞的情况下以线程安全的方式跟踪用户数据(例如当前查看的堆栈问题)?

0 投票
1 回答
1195 浏览

c++ - 从 websocketpp 中的 connection 或 connection_ptr 获取本机套接字描述符?

有没有办法从connectionorconnection_ptr中获取本机套接字描述符websocketpp?在将帧发送到客户端之前,我需要设置 TCP_CORK。我是 Boost.Asio 的新手,请指教。

0 投票
2 回答
2637 浏览

c++ - 调试 websocket++ broadcast_server.cpp('owner_less' 不是 'std' 的成员)

Zaphoydbroadcast_server.cpp看起来像是 websocket 服务器的完美主干,它可以快速接受和发送消息以及与线程的连接以进行实际操作,因此不会中断通信。 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,请张贴。

0 投票
1 回答
571 浏览

connection - WebSocketsPP v3 库的客户端连接限制

在 WebSocket++ 0.3.x 库中,什么决定了有多少 WebSocket 客户端可以有活动连接的限制?是每个线程一个连接,还是一个线程可以处理多个 WebSocket 客户端连接?如果是后者,一个线程大概能持有多少个连接?

基本上,我正在寻找一个大概有多少客户端连接 WebSocket++ 库可以在大约有 25 个线程的应用程序中处理。图书馆主页是: http ://www.zaphoyd.com/websocketpp

0 投票
1 回答
1965 浏览

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 控制台应用程序项目。

我已经找到includewebsocketpp目录,安装了 boost 1.53.0你如何在 Windows 上安装 Boost.Build?,并开发了includeboost linkBoost链接、Visual Studio 和版本控制

我正在尝试build print_server.cpp http://www.zaphoyd.com/websocketpp/manual/building-program-websocket

当我这样做时,我得到Error 1 error C2182: '*' : illegal use of type 'void' c:\boost_1_53_0\boost\smart_ptr\intrusive_ptr.hpp Line:155 Column:1

升压代码是(第二行是 155):

为什么我会收到此错误?我如何解决它?