我正在尝试使用带有独立asio的websocket ++在C ++项目与当前在浏览器中以有角度的运行方式创建的客户端之间进行一些websocket通信。
似乎我的握手有问题,即某些CORS设置。
在客户端,我得到了:
Cross-Origin Request Blocked: The Same Origin Policy disallows reading the remote resource at http://localhost:3001/socket.io/?EIO=3&transport=polling&t=MV3LZsv. (Reason: CORS header ‘Access-Control-Allow-Origin’ missing).
同时,我在cpp侧面控制台中得到了这个:
[2018-12-18 15:09:39] [error] Handshake ended with HTTP error: 426
[2018-12-18 15:09:39] [fail] WebSocket Connection [::ffff:127.0.0.1]:57762 v0 "Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:64.0) Gecko/20100101 Firefox/64.0" /socket.io/?EIO=3&transport=polling&t=MV1ffJg 426 websocketpp:28 Upgrade required
好吧,我在GitHub存储库上发现了这个问题: https://github.com/zaphoyd/websocketpp/issues/679
所以我尝试添加验证处理程序,但是它不起作用,甚至没有被调用,因此Access-Control-Allow-Origin
甚至都没有添加到请求中。
有什么想法吗?
//编辑:更新了客户端错误消息
答案 0 :(得分:1)
看看https://github.com/andrei-markeev/ddpserver/blob/master/examples/websocketpp.cpp#L44
简而言之,请尝试使用connection_ptr附加“访问控制权限允许来源”。
result