1. 程式人生 > >C++ websocket庫 websocketpp/websocket++例子編譯試用

C++ websocket庫 websocketpp/websocket++例子編譯試用

想試試C++的websocket,搜了下,發現websocketpp/websocket++用的人挺多,對主流瀏覽器都支援;

使用也方便,包含標頭檔案即可(再加上boost標頭檔案和庫),沒有其他依賴

1、搭建好boost

http://blog.csdn.net/sdsabc2000/article/details/52461139

2、下載websocket++

https://github.com/zaphoyd/websocketpp

2、以例子裡面的echo_server為例

linux:

編譯

g++ -o test echo_server.cpp -I./ -Iwebsocket++目錄 -lboost_system -lboost_chrono

執行test即可

windows

把echo_server 的目錄拷出來到新的目錄,以免修改誤傷

vs2015->新建->從已有程式碼建立專案->VC++專案->選擇剛拷貝的echo_server資料夾

建立完成後,包含目錄加入boost目錄,websockt++目錄

庫目錄加入boostx86庫的目錄

編譯通過..

on_message是收到訊息的回撥函式

hdl.lock().get() 獲得連線標識

msg->get_payload() 是收到的訊息內容

msg->get_opcode() 是收到訊息的型別 ,轉到標頭檔案可以看到有,文字  TEXT,二進位制BINARY等等

傳送訊息

s->send(

hdl, //連線

msg->get_payload(), //訊息

msg->get_opcode());//訊息型別

可以簡單的為連線設定接入和斷開的回撥函式

    echo_server.set_open_handler(bind(&on_open, &echo_server, ::_1));
        echo_server.set_close_handler(bind(&on_close, &echo_server, ::_1));

 void on_open(server* s, websocketpp::connection_hdl hdl) {
    std::cout << "on_open called with hdl: " << hdl.lock().get()        
        << std::endl;
}

 
void on_close(server* s, websocketpp::connection_hdl hdl) {
    std::cout << "on_close called with hdl: " << hdl.lock().get()
        << std::endl;
}

相關推薦

C++ websocket websocketpp/websocket++例子編譯試用

想試試C++的websocket,搜了下,發現websocketpp/websocket++用的人挺多,對主流瀏覽器都支援; 使用也方便,包含標頭檔案即可(再加上boost標頭檔案和庫),沒有其他依賴 1、搭建好boost http://blog.csdn.net/s

自己開發簡單web伺服器一(C++開源websocketpp實現)

簡要 Web伺服器主要處理的是HTTP請求(這裡忽略HTTPS),HTTP協議建立在TCP上。如果自己實現,無非就是網路程式設計(socket接受、傳送),資料解析(HTTP欄位解析),返回HTTP協議字串給客戶端等。說起來簡單,要做到跨平臺和高效,不得不介紹幾個有名的開源

C++靜態編譯

opencv ng- res tracking mic gdi end jasper debug模式 MFC 選項選擇: 靜態庫編譯 增加頭文件:( opencv相關的) #pragma once #ifdef WIN32 #include <open

用socket.io實現websocket的一個簡單例子

soc .html www sock 在線 ket log html 簡單例子 http://biyeah.iteye.com/blog/1295196 socket.io的介紹 http://www.cnblogs.com/mazg/p/5467960.html

由於C++類版本不同導致的OpenCV編譯鏈接錯誤

c++類 庫文件 它的 int down error: string ray 無法 太長不看版:GCC4和GCC5使用的C++標準庫下,string的名字不一樣,導致鏈接錯誤。 之前在Ubuntu下使用OpenCV的時候一切正常。後來再次編譯的時候,連接器提示有些庫函數找不

HTML5 WebSocket的使用及例子

WebSocket protocol 是HTML5一種新的協議(protocol)。它是實現了瀏覽器與伺服器全雙工通訊(full-duplex)。 現在,很多網站為了實現即時通訊(real-time),所用的技術都是輪詢(polling)。輪詢是在特定的的時間間

VS C++ 服務端解析WebSocket資料包

        WebSocket傳送資料時,會將您的傳送資料進行一定格式的封包處理,具體協議格式網上很多文章介紹,大家直接問度娘。這裡我直接上VC++ 的處理程式碼。       先定義資料包格式頭

在64位Ubuntu14.04LTS上編譯和連結32位彙編程式(使用c標準)需要如何配置配置環境

1.安裝32位c標準庫libc6:i386 aptitude install libc6:i386 2.安裝gcc-4.8-multilib sudo aptitude install gcc-4.8-multilib

c++ socket windows編譯

從 http://www.alhem.net/Sockets 下載的 c++ socket 庫,版本是2.3.9.7。使用vs2010環境,編譯時報錯,主要有兩類錯誤:一類是型別沒有定義(但該檔案已包含)另一類是型別重定義,winsock.h和winsock2.h的型別重

linux c的連線和怎麼同時編譯多個源程式

1、理解庫函式       庫函式有標頭檔案和庫檔案(so 或者 a)的集合      1)標頭檔案的預設目錄 /usr/include     2)庫檔案的預設目錄 /user/lib     3)linux的庫檔案分為動態連線庫(.so)和靜態連線庫(.

linux 下使用ndk-build編譯android使用的c++靜態

1)下載android-ndk-r4 下載地址 http://www.ideasandroid.com/android/sdk/android-ndk-r4-linux-x86.zip http://developer.android.com/sdk/ndk/overvi

Unity Windows&Mac 編譯和除錯外部C#動態(DLL)

目標實現 Windows 平臺 工具 Visual Studio 2015 Unity 5.6 Visual Studio 2015 Tools for Unity  Python 2.7.9 步驟 建立 C# 類庫工程 引用UnityEngine.dl

關於Spring與WebSocket結合的簡單例子

      我的執行環境是:Tomcat 8.0 + Spring 4.0 + Myeclipse2014 + Firefox 42        JDK 1.8 不支援Spring 4.0 之前的版本       使用Google瀏覽器,Spring可能會丟擲異常:The

C#類編譯及使用

 1 using System; 2 using System.Data.SqlClient; 3  4  5 publicclass DataReaderSql 6   { 7 publicstaticint Main(string[] args) 8   { 9 string        source 

json函式入門例子,詳解。--C語言

// 還是得多動手總結啊,不足之處,還望提醒。編譯的時候,記得加上 -ljson 庫 #include<stdio.h> #include "json/json.h" void make_a_common_json_string(); int main

Node.js實現WebSocket聊天室的例子

對於聊天室,大家應該都不陌生,筆者也寫過很多關於聊天室的例子。 本節,我們將演示如何通過Node.js來實現一個WebSocket

一個C++引用的標頭檔案預編譯陷阱

#### 寫在前面 老胡最近在工作中,有個場景需要使用一個第三方庫,引用標頭檔案,連結庫,編譯執行,一切都很正常,但是接下來就遇到了一個很詭異的問題,呼叫該庫的中的一個物件方法為物件修改屬性的時候,會影響到物件的另外一個屬性,當時百思不得其解,直呼靈異事件。 但後面靜下心來細細看了一下程式碼和各種配置,發現了

C標準pow函數精度問題。

一般來說 nbsp any pre 4.5 logs urn padding signed #include <stdio.h> int main () { int temp,i; double a=2.4568; unsigned char b[5]

站在巨人的肩膀上,C++開源大全

windows應用 pcr ram perl t對象 rest 容器 企業應用 聲音 程序員要站在巨人的肩膀上,C++擁有豐富的開源庫,這裏包括:標準庫、Web應用框架、人工智能、數據庫、圖片處理、機器學習、日誌、代碼分析等。 標準庫 C++ Standard

c語言函數測試

print 異常終止 不存在 eache 函數名 mode .com src 參數 1.函數名: abort功 能: 異常終止一個進程用 法: void abort(void);程序例: 1 #include <stdio.h> 2 #include &l