连接到套接字.IO服务器从c++应用程序

Connecting to socket.io server from c++ application

本文关键字:c++ 应用程序 服务器 IO 套接字 连接      更新时间:2023-10-16

我正在尝试为我的基于web的应用程序做poc,我有以下

1)一个基本的node.js/socket。基于io的LINUX服务器,提供基本的网页作为客户端

client.html

<!DOCTYPE html>
<html>
<head>
    <script src="/socket.io/socket.io.js"></script>
    <script type="text/javascript">
     var socket = io.connect("169.xxx.xxx.xx:5000");
     socket.on("aServerEvent", function(data)
     {
       document.getElementById("chatlog").innerHTML = ("<hr/>" +
       data['message'] + document.getElementById("chatlog").innerHTML);
     });
     function sendMessage()
     {
        var msg = document.getElementById("message_input").value;
        socket.emit("aClientEvent", { message : msg});
     }
    </script>
</head>
<body>
    <input type="text" id="message_input"/>
    <button onclick="sendMessage()">send</button>
    <div id="chatlog"></div>
</body>
</html>

server.js

var app = require('http').createServer(handler),
    io = require('socket.io').listen(app),
    fs = require('fs')
    app.listen(5000,'169.xxx.xxx.xx');
function handler (req, res)
{
    fs.readFile("client.html", function (err, data)
    {
        if (err)
        {
            res.writeHead(500);
            return res.end('Error loading client.html');
        }
        res.writeHead(200);
        res.end(data);
    });
}
console.log('Server running at http://169.xxx.xxx.xx:5000/');
io.sockets.on('connection', function(socket)
{
    socket.on('aClientEvent', function(data)
    {
        var newData = "serverResponse: " + data["message"].toUpperCase();
        io.sockets.emit("aServerEvent", { message: newData });
    });
});

到目前为止,我在网页(客户端)上输入一个文本,由服务器读取,返回大写文本作为确认。

2)现在我想在linux上写一个基本的c++程序,使用websocketpp与我的node.js/socket建立一个基于websocket的连接。IO服务器

如何在node.js服务器和c++应用程序(基于websocketpp)之间建立基于websocket的连接?

我找到的最接近的匹配是…

https://github.com/ebshimizu/socket.io-clientpp 

(但是使用rapidjson,我只想使用libjson)

https://github.com/uning/socket.io-client-cpp 

(这看起来像原始websocketpp库的修改版本,并且在SRC中有很多文件,如果它们都是必需的,这让我感到困惑)

任何指针将不胜感激

Thanks in advance

现在套接字。io也有c++客户端。看这里https://github.com/socketio/socket.io-client-cpp还有一篇博客文章提供了完整的聊天示例http://socket.io/blog/socket-io-cpp/

由于您运行的是Linux,因此应该有相应的包。我看了看Debian和websocketpp-dev会是你需要的。试试yum search websocketppapt-get search websocketpp,然后安装dev/dev包。
文档可以在这里找到:http://doxygen.websocketpp.org/annotated.html
我希望这就是你想要的。