精华内容
下载资源
问答
  • MicroPython WebSockets(ESP8266实现) ESP8266(仅客户端ATM)的websocket的实现。...$ ampy put uwebsockets/protocol.py uwebsockets/protocol.py $ ampy put uwebsockets/client.py uwebsockets/client.py $ a
  • uWebSockets:简单,安全和符合标准的Web服务器,适用于最苛刻的应用程序
  • require ( 'uWebSockets.js' ) . SSLApp ( { /* There are more SSL options, cut for brevity */ key_file_name : 'misc/key.pem' , cert_file_name : 'misc/cert.pem' , } ) . ws ( '/*' , { /* There are ...
  • uWebSockets :最轻量级的、高效的、可伸缩的WebSocket服务器实现
  • uWebSockets编译

    2021-09-08 08:38:40
    git clone https://github.com/uWebSockets/uWebSockets cd uWebSockets git checkout e94b6e1 mkdir build cd build cmake .. make sudo make install
    git clone https://github.com/uWebSockets/uWebSockets 
    cd uWebSockets
    git checkout e94b6e1
    mkdir build
    cd build
    cmake ..
    make 
    sudo make install
    展开全文
  • 参考网址: uWebSockets项目地址:https://github.com/uNetworking/uWebSockets ...1、编译和使用uWebSockets的环境为win10,vs2017 专业版,所有的依赖库都是32位debug版本的,Linux上未尝试 2、...

    参考网址:

    uWebSockets项目地址:https://github.com/uNetworking/uWebSockets

    uSockets项目地址:https://github.com/uNetworking/uSockets

    一、摘要:

    1、编译和使用uWebSockets的环境为win10,vs2017 专业版,所有的依赖库都是32位debug版本的,Linux上未尝试

    2、uWebSockets编译所需依赖库为:

    <1> libuv:请参考我之前的博文,将此库编译为静态库:C网络库使用(一):libuv的安装、多线程tcp客户端、多线程tcp服务器的使用_wangdamingll的博客-CSDN博客

    <2> uSockets:请参考我之前的博文,将此库编译为静态库:uWebSockets的使用(一):uSockets的编译和使用(一)_wangdamingll的博客-CSDN博客_uwebsockets

    <3> zlib:这里不做如何编译成库,官网网址:zlib Home Site 

    二、构建vs2017工程

    因为uWebSockets除uSocekts之外,是使用C++17标准的头文件构建的,不需要编译,直接包含uWebSockets项目地址下的src头文件即可。

    一下是我的common库文件结构:

    common包含4个文件夹:

    libuv: 包含libuv库的头文件和静态库

    uSockets:包含uSocekts的头文件和静态库

    zlib:包含zlib的头文件和静态库

    uWebSockets:直接包含uWebSockets项目地址下的src下的所有文件

    1、新建vs2017空项目

    <1>项目设置


    1)VC++ 目录->包含目录, 将common所有文件夹中的头文件包含进来

    2)VC++ 目录->库目录, 将common所有文件夹的静态库路径包含进来

    3)C/C++ ->预处理器,添加UWS_NO_ZLIB,去除zlib功能,我这里将zlib的静态库接入工程始终不成功,所以直接禁用zlib功能

    4)C/C++ ->语言,符合模式改为否,否则编译报错

    5)C/C++ ->语言,C++ 语言标准改为 ISO C++17 标准 (/std:c++17)

    6)链接器 ->输入->附加依赖项,添加 zlib.lib
    libuv.lib
    uSockets_32.lib
    userenv.lib
    Iphlpapi.lib
    psapi.lib

    7)链接器 ->输入->忽略特定默认库,添加 LIBCMTD

    <2> 在项目中添加源文件


    1)右击头文件->添加现有项,将common库下uWebSockets下的所有文件添加进工程中

    2)右击源文件->添加现有项,将uWebSockets项目地址下examples下的EchoServer.cpp添加进工程中

    <3>编译工程

    你没有看错哦,有错误,如果你没有这个错误,那么非常恭喜你。至少我这里是不成功的。这个问题我查了很久,从uWebSockets项目地址下的issue中发现了蛛丝马迹。所以我在这里也只能猜测(毕竟官方的例子别人都能运行):

    uWS::App().ws<PerSocketData>("/*", {.....})

    这里{.....}中的内容应该是C++17标准中的语法,是给App.h中此结构体成员变量赋值的:

        struct WebSocketBehavior {
            CompressOptions compression = DISABLED;
            int maxPayloadLength = 16 * 1024;
            int idleTimeout = 120;
            int maxBackpressure = 1 * 1024 * 1204;
            fu2::unique_function<void(uWS::WebSocket<SSL, true> *, HttpRequest *)> open = nullptr;
            fu2::unique_function<void(uWS::WebSocket<SSL, true> *, std::string_view, uWS::OpCode)> message = nullptr;
            fu2::unique_function<void(uWS::WebSocket<SSL, true> *)> drain = nullptr;
            fu2::unique_function<void(uWS::WebSocket<SSL, true> *)> ping = nullptr;
            fu2::unique_function<void(uWS::WebSocket<SSL, true> *)> pong = nullptr;
            fu2::unique_function<void(uWS::WebSocket<SSL, true> *, int, std::string_view)> close = nullptr;
        };

    然而非常抱歉的是,我这vs 2017专业版对此语法并不支持,虽然我vs 2017语言标准选择的是C++ 17标准。

    <4>修改源码改变上述赋值方式

    在这里我只修改了App.h中的部分源码:

    原来命名空间下增加WebSocketBehavior模板,并将struct TemplatedApp {...}类下WebSocketBehavior注释掉,

    接着修改struct TemplatedApp {...}类下ws的第二个参数,源码修改完成. 以下为示例:

    namespace uWS {

    ...

    template <bool SSL>
    struct WebSocketBehavior {
        CompressOptions compression = DISABLED;
        int maxPayloadLength = 16 * 1024;
        int idleTimeout = 120;
        int maxBackpressure = 1 * 1024 * 1204;
        fu2::unique_function<void(uWS::WebSocket<false, true> *, HttpRequest *)> open = nullptr;
        fu2::unique_function<void(uWS::WebSocket<false, true> *, std::string_view, uWS::OpCode)> message = nullptr;
        fu2::unique_function<void(uWS::WebSocket<false, true> *)> drain = nullptr;
        fu2::unique_function<void(uWS::WebSocket<false, true> *)> ping = nullptr;
        fu2::unique_function<void(uWS::WebSocket<false, true> *)> pong = nullptr;
        fu2::unique_function<void(uWS::WebSocket<false, true> *, int, std::string_view)> close = nullptr;
    };
    typedef WebSocketBehavior<false> Behavior;
    typedef WebSocketBehavior<true> SSLBehavior;

    ...

    template <bool SSL>
    struct TemplatedApp {

    ...

        /*
        struct WebSocketBehavior {
            CompressOptions compression = DISABLED;
            int maxPayloadLength = 16 * 1024;
            int idleTimeout = 120;
            int maxBackpressure = 1 * 1024 * 1204;
            fu2::unique_function<void(uWS::WebSocket<SSL, true> *, HttpRequest *)> open = nullptr;
            fu2::unique_function<void(uWS::WebSocket<SSL, true> *, std::string_view, uWS::OpCode)> message = nullptr;
            fu2::unique_function<void(uWS::WebSocket<SSL, true> *)> drain = nullptr;
            fu2::unique_function<void(uWS::WebSocket<SSL, true> *)> ping = nullptr;
            fu2::unique_function<void(uWS::WebSocket<SSL, true> *)> pong = nullptr;
            fu2::unique_function<void(uWS::WebSocket<SSL, true> *, int, std::string_view)> close = nullptr;
        };
        */

    ...

        template <typename UserData>
        //TemplatedApp &&ws(std::string pattern, WebSocketBehavior &&behavior) {
        TemplatedApp &&ws(std::string pattern, WebSocketBehavior<SSL> &&behavior) {

    ...

    }

    ...

    }

    }

    <5>修改官方给的例子

    这是我上传到github上的网址: https://github.com/wangdamingll/uWebSocektsDemo.git


    int main() {
        /* ws->getUserData returns one of these */
        struct PerSocketData {

        };
        
        auto app = uWS::App();
        auto behavior = uWS::Behavior();
        behavior.compression= uWS::DISABLED;
        behavior.maxPayloadLength = 16 * 1024;
        behavior.idleTimeout = 10;
        behavior.open = [](auto *ws, auto *req) {

        };
        behavior.message = [](auto *ws, std::string_view message, uWS::OpCode opCode) {
            std::cout << "message: " << message << std::endl;
            ws->send(message, opCode);
        };
        behavior.drain = [](auto *ws) {

        };
        behavior.ping = [](auto *ws) {

        };
        behavior.pong = [](auto *ws) {

        };
        behavior.close = [](auto *ws, int code, std::string_view message) {

        };

        app.ws<PerSocketData>("/*", (uWS::Behavior&&)behavior).listen(9001, [](auto *token) {
                if (token) {
                    std::cout << "Listening on port " << 9001 << std::endl;
                }
        }).run();

    }

    <6>重新编译运行例子

    2、使用总结

    个人总结一下,此库不太好用,编译比较麻烦,官方给的demo使用信息较少

    展开全文
  • Etherpaint演示 Alpha版本在以下位置运行: : 请在我们的“来宾簿”上签名:) 正在安装 在Ubuntu 20上构建 注意:我们至少需要g ++-10。 以root身份安装需求: # apt install g++-10 cmake libboost-dev ...
  • uWebSockets使用过程

    千次阅读 2019-11-20 16:43:13
    uWebSockets 最近领导要我用c++做一个websocket服务端,至于为毛一定要c++,不敢猜测领导的心思,我的想法是c++虽然效率高一点,但如果做的不好,或者使用的第三方库不明智(有bug或者使用有吴),更加得不偿失。我...

    uWebSockets

    最近领导要我用c++做一个websocket服务端,至于为毛一定要c++,不敢猜测领导的心思,我的想法是c++虽然效率高一点,但如果做的不好,或者使用的第三方库不明智(有bug或者使用有吴),更加得不偿失。我还是觉得用go做又快有好!
    废话小说!
    在网上查找了c++关于做websocket的文章都说uWebSockets好,是一个高效率、轻量级的websocket库,于是就开始下载体验。
    下载地址:https://github.com/uNetworking/uWebSockets
    看到好像作者一直在维护,这几天还有update,感觉应该不错。我用的github下载:
    环境 CentOS Linux release 7.7.1908 (Core)

    git clone https://github.com/uNetworking/uWebSockets.git
    下载下来后:
    ls uWebSockets
    在这里插入图片描述
    绿色的是我后来编译出来的examples。
    蓝岛makefile文件 直接make ,发现说缺少targert uSocket里面,纳闷了看看ls uSocket确实为空,看了下说名和百度找资料,可惜资料少的可伶。了解到uWebSockets依赖于uSocket,而正好 https://github.com/uNetworking下还有个uSockets的项目,于是直接删除uSockets目录,然后
    git clone https://github.com/uNetworking/uSockets.git

    下载下来,恩感觉还行,继续make
    还是悲剧:g++: error: unrecognized command line option ‘-std=c++17’
    需要c++17,
    看了下自己的g++版本 4.8.5肯定是不支持。起码要7点几,于是就研究安装gcc了。
    g++17安装过程请查看文章:
    https://blog.csdn.net/qq_35537557/article/details/103165072
    安装好之后 make 解决一系列小问题之后,居然make出来可执行文件了。
    在这里插入图片描述
    还有一些小问题 好像不影响,开始执行,又经过一些小问题终于跑起来了!
    网页测试结果:
    在这里插入图片描述
    ok!就拿这个给领导交差算了。里面最坑的就是c++17,由于最近一直没接触c++新的东西,还要网上学资料。其中一个std::string_view 化了我一两个小时的时间。安装c++17 花了我大半天时间,再做下东西的修改测试总共花了我两天时间,没关系反正领导给得起时间,半天就能干完的事情,人家愿意给两三天,人家乐意!

    展开全文
  • 它是基于 uWebSockets 的非常快速的 Web Server Node.js 服务器。 并且非常容易使用。 用法 npm i fast-ws const fastWS = require ( 'fast-ws/server' ) const app = new fastWS ( { /* options */ } ) app . ws ...
  • uWebSockets的使用

    千次阅读 2018-10-09 18:49:00
    uWebSockets如何如何好,就试一把 项目主页 https://github.com/uNetworking/uWebSockets 打开里面的vs项目文件,编译发现缺少uv.h 项目里面也没有说要依赖某个库,一查这个库可是鼎鼎大名的lib...

    最近要使用WebSockets做实时推送,然后看到网上一篇文章

    https://www.jianshu.com/p/64e36cd3ed1a

    说uWebSockets如何如何好,就试一把

    项目主页 https://github.com/uNetworking/uWebSockets

    打开里面的vs项目文件,编译发现缺少uv.h

    项目里面也没有说要依赖某个库,一查这个库可是鼎鼎大名的libuv

    https://github.com/libuv/libuv

    关于libuv的一些介绍https://blog.csdn.net/linuxandroidwince/article/details/72297630

    决定自己编译一个库出来,libuv官方的文档说在win下编译,需要配置如下

    ### Windows
    
    Prerequisites:
    
    * [Python 2.6 or 2.7][] as it is required
      by [GYP][].
      If python is not in your path, set the environment variable `PYTHON` to its
      location. For example: `set PYTHON=C:\Python27\python.exe`
    * One of:
      * [Visual C++ Build Tools][]
      * [Visual Studio 2015 Update 3][], all editions
        including the Community edition (remember to select
        "Common Tools for Visual C++ 2015" feature during installation).
      * [Visual Studio 2017][], any edition (including the Build Tools SKU).
        **Required Components:** "MSbuild", "VC++ 2017 v141 toolset" and one of the
        Windows SDKs (10 or 8.1).
    * Basic Unix tools required for some tests,
      [Git for Windows][] includes Git Bash
      and tools which can be included in the global `PATH`.
    
    To build, launch a git shell (e.g. Cmd or PowerShell), run `vcbuild.bat`
    (to build with VS2017 you need to explicitly add a `vs2017` argument),
    which will checkout the GYP code into `build/gyp`, generate `uv.sln`
    as well as the necesery related project files, and start building.
    
    ```console
    > vcbuild
    ```
    
    Or:
    
    ```console
    > vcbuild vs2017
    ```
    
    To run the tests:
    
    ```console
    > vcbuild test
    ```
    
    To see all the options that could passed to `vcbuild`:
    
    ```console
    > vcbuild help
    vcbuild.bat [debug/release] [test/bench] [clean] [noprojgen] [nobuild] [vs2017] [x86/x64] [static/shared]
    Examples:
      vcbuild.bat              : builds debug build
      vcbuild.bat test         : builds debug build and runs tests
      vcbuild.bat release bench: builds release build and runs benchmarks

    1.配置python执行路径

    2.下载build/gyp 由于git clone https://chromium.googlesource.com/external/gyp build/gyp 这个地址墙了,所以替换为https://github.com/nodejs/node-gyp

    选取里面的node-gyp 的gyp目录拷贝到build/

    屏蔽这句

    echo git clone https://chromium.googlesource.com/external/gyp build/gyp
    @git clone https://chromium.googlesource.com/external/gyp build/gyp
    if errorlevel 1 goto gyp_install_failed
    goto have_gyp

     运行 vcbuild.bat

    生成libuv.lib
    uWebSockets项目中添加D:\opensource\libuv-v1.23.2\libuv-v1.23.2\include

    编译报错

    无法打开包括文件: “openssl/opensslv.h”: No such file or directory

    下载 https://github.com/openssl/openssl

    也可以直接 直接下载安装文件,里面所有的头文件,库都有,一定要选全版本,不能选择轻版本 https://slproweb.com/products/Win32OpenSSL.html  

     

    转载于:https://www.cnblogs.com/baldermurphy/p/9759660.html

    展开全文
  • ubuntu16.04 编译uWebSockets

    千次阅读 2019-10-23 17:13:43
    udacity作业工程编译报错: ...是缺少工程所需的uWebSockets库,安装过程如下: 环境:Ubuntu16.04 cmake: 3.15.0 make: 4.1 gcc: 5.4.0 sudo apt-get install libuv1-dev git clone htt...
  • 该库是一个即插即用的静态文件服务器+ uWebSockets插件管理器,带有聊天示例和角度集成。 从v2.18.0开始,一个客户端(套接字)可以同时预订多个主题(会议室)。 您可能想使用此库的常见用例: 你想要一个静态...
  • done 第一个例子 使用浏览器测试: 效果: 使用 1、使用clion创建一个c++17工程 2、将刚才目录下的uSockets.a和libusockets.h复制到工程目录下 uWebSockets uWebSockets,是一款高度可拓展的最轻量级、效率最高的...
  • uSockets的编译和使用(一) ...uWebSockets项目地址:https://github.com/uNetworking/uWebSockets uSockets项目地址:https://github.com/uNetworking/uSockets 一、摘要 之前工作中有用到过websocket,所以最近研...
  • uWebSockets.js 系统 Windows 10 英特尔酷睿i7-8550U 单实例 表示 固定 http 插座 uSocket +快速json 296 668 560 973 1026 262 645 570 967 1101 272 560 620 1085 1077 平均数 平均数 平均数 ...
  • 我可能会在制作真正的前叉/端口之前在circuitpython上使用uwebsockets进行测试。 该代码已适用于ESP32S2 firt,然后返回使用socket.recv等。 当前它不是基于最新的uwebsockets,而是我正在使用并与我的代码一起...
  • uWebSockets-master.zip

    2019-09-26 15:23:07
    websocket简单应用,也是下载别人看的,分享出来,可以作为学习使用
  • websockify-uws 由乔尔·马丁(Joel Martin)修改的可以与高性能库一起使用,该库已经过现代化更新并作为易于使用的软件包发布到npm。 如何使用 npm install -g websockify-uws websockify [source_addr:]source_...
  • 请查看以上目录(服务器,客户端)中的README文件,以查看每个软件包的文档。
  • Simple, secure1 & standards compliant2 web server for the most demanding3 of applications. Read more... Optimized security Being meticulously optimized for speed and memory footprint, µ...
  • uWebSockets 0.9.0 发布了,包括性能提升和bug修复。uWebSockets,是一款高度可拓展的最轻量级、效率最高的WebSocket服务器库之一。它具有易于使用的,完全异步面向对象的接口和与其他竞品对比扩展到数百万连接只...
  • <div><p>Bumps <a href="https://github.com/uNetworking/uWebSockets.js">uWebSockets.js</a> from <code>69026e1</code> to <code>116a85f</code>. Commits <ul><li><a href="https://github.com/uNetworking/...
  • http://www.codza.com/blog/udacity-uws-in-visualstudio 转载于:https://www.cnblogs.com/flyinggod/p/10656044.html
  • Html5 WebSocket c++实例

    2019-02-03 23:40:15
    实现WebSocket与C++服务端的成功连接的实例:网页客户端,C++Server以及一个国外的完整实例。
  • websocket++ vs2013编译环境,改一下vs属性->附件包含目录路径,可直接编译
  • libwebsocket VS2017工程

    2019-04-10 20:28:50
    这个资源使用libwebosck库创建了vs2017的工程,实现成功链接的简单例子。包括 c++ c s 端和 JS 的c 端 。使用本工程开始工作,可以免去很多编译配置与试验的时间。
  • 安装uWebSocketIO

    2019-12-21 19:19:00
    https://github.com/uNetworking/uWebSockets sudo apt-get install libuv1-dev git clone https://github.com/uNetworking/uWebSockets.git ...cd uWebSockets/ git checkout e94b6e1 mkdir build cd build/ c...
  • Ubuntu18.04安装uWebSockes

    2020-03-23 16:15:44
    新建文件install_ubuntu.sh touch install_... sudo ln -s /usr/lib64/libuWS.so /usr/lib/libuWS.so sudo rm -r uWebSockets 给文件添加可执行权限 sudo chmod +x install_ubunth.sh 执行安装过程 ./install_ubuntu.sh
  • Qt 之 WebSockets

    万次阅读 2016-09-18 14:45:28
    简述WebSocket 是一个基于 Web 的协议,旨在使 client 应用程序和远程主机之间进行双向通信。如果最初的握手成功,则两个实体可以来回发送数据。WebSocket 是通过用更少的网络延迟和最小数据交换来努力获取实时数据...

空空如也

空空如也

1 2 3 4 5 ... 7
收藏数 140
精华内容 56
关键字:

uwebsockets