Git Product home page Git Product logo

Comments (2)

fqcloud avatar fqcloud commented on June 7, 2024

I try it myself, but it seems not work well enough.

	inline bool process_and_close_socket(socket_t sock) override
	{
		bool bReq4WsUpgrade = false;
		auto ret = httplib::detail::process_server_socket(
			svr_sock_, sock, keep_alive_max_count_, 0/*keep_alive_timeout_sec_*/,
			read_timeout_sec_, read_timeout_usec_, write_timeout_sec_,
			write_timeout_usec_,
			[this, &bReq4WsUpgrade](httplib::Stream& strm, bool close_connection, bool& connection_closed) {
				set_post_routing_handler([this, &bReq4WsUpgrade](const httplib::Request& req, httplib::Response& res)
					{
						std::string strAccept;
						bReq4WsUpgrade = IsUpgradeRequest(req, strAccept);
						if (bReq4WsUpgrade)
						{
							res.set_header("Connection", "Upgrade");
							res.set_header("Upgrade", "websocket");
							res.set_header("Sec-WebSocket-Accept", strAccept);
							res.set_header("Server", "HttpWebSocketServer");
							res.status = httplib::StatusCode::SwitchingProtocol_101;
							res.body.clear();
							res.content_provider_ = nullptr;
						}
					});
				return process_request(strm, close_connection, connection_closed, nullptr);
			});
		if (!bReq4WsUpgrade)
		{
			httplib::detail::shutdown_socket(sock);
			httplib::detail::close_socket(sock);
		}
		else
		{
			wspool_.add(sock, wsCbFactory_());
		}
		return ret;
	}

from cpp-httplib.

yhirose avatar yhirose commented on June 7, 2024

I don't have a plan to support websocket.

from cpp-httplib.

Related Issues (20)

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.