Comments (22)
Ok I'll take a look. Documentation change is probably the only thing needed then. I've been thinking about adding a small 'Build' wiki page (or markdown or whatever is the most convenient) where we could explain all the different ways to build this lib.
from ixwebsocket.
from ixwebsocket.
Great thanks.
I'm trying to document what's changing in here -> https://github.com/machinezone/IXWebSocket/blob/master/CHANGELOG.md
There wasn't too much since 5.0.0, no changes to the core library, but there was a windows fix I just made, caused by something I introduced ... at some point :)
from ixwebsocket.
from ixwebsocket.
Hi @LunarWatcher. Thanks for all the efforts trying to get this building with conan. I've actually been playing with vcpkg and there's a 'port' for it that got merged recently.
This port I linked too is un-maintained and ancient indeed. The README for this project has examples, and the unittest is a good place to look for up to date code.
I am very unfamiliar with conan, so if you want to make a PR for it I'll accept it. I don't know much about the steps for pushing something conan-center.
from ixwebsocket.
I haven't tried publishing anything to conan-center, but I already have an account on Bintray, so it shouldn't be too hard.
When you say you want a PR, do you want the recipe in this repo? Most of the other conan recipes I've seen use separate repos. It's no problem either way, I just need to make sure I understand what you want. (A documentation update PR is kinda implied here either way)
Either way, I'll need to set up some tests, but I think once I've done that, I should be able to upload it. Now that there are actual tests, I might be able to run it from there instead of manually creating tests. Some packages create their own tests, others (like Boost), appear to use placeholder C++ files linking to the internal tests. Not really sure - like I said, I don't have much experience with creating conan recipes.
Like I said, the current one works minimally, but IIRC, there needs to be tests in order to upload it to the central repo. And since you said you're not familiar with conan, conan center is the central conan repository. Packages can be added there freely, but there's constraints and I think review before that happens, but I haven't tried publishing a package. Uploading it to Bintray alone allows the repo to be added as a remote, and it enables the recipe/any built binaries for compatible platforms to be downloaded without manually calling conan create
to install it anywhere necessary.
Users can also upload recipes for third party libraries, so it's not limited to the owners. The specific guidelines for both are listed here if you're interested.
from ixwebsocket.
Update on the issue:
I've re-written the entire recipe from scratch. It's in the same repo, but it's no longer a fork because, like I said, re-writes.
I added a test as well, but it currently excludes Windows due to an issue that may or may not be of importance:
Unable to connect to echo.websocket.org on port 80, error: Either the application has not called WSAStartup, or WSAStartup failed
This is Windows-only from the looks of it (no-repro on an Ubuntu 18.04 Docker container). I have practically no experience with this library - could I be missing some library linking here, or is Windows just broken?
Anyway, beyond that, the recipe should be ready. I ended up creating a test using websocket.org as an echo server, which works fine on Linux (aside two messages and a race condition, but that's not really a big deal as long as it's at lesat returning something).
from ixwebsocket.
from ixwebsocket.
I'll push the new code in a second - that call fixed it on Windows. As for the race condition, that appears to have been a loop problem. Weirdly though, it doesn't happen on Windows, only Linux (might be a container issue of course, but I kinda had that coming for using a while loop to dispatch messages :] ).
In this I noticed I created a bug with linking the vendored version of MbedTLS on Linux. I'll fix that tomorrow. Beyond that, the test seems to be fine, and the library is doing its job. I'll leave another comment once I've patched up the vendored MbedTLS issue on Linux, but after that, I think the recipe should be up to date. It's still untested on Apple (which I can't test because I don't have access to an Apple device) and Android, but I imagine Android is pretty close to Linux.
from ixwebsocket.
I've fixed the build issue in Linux with mbedTLS (it was a linking order issue - added a safeguard to make sure it's linked in the right order).
The recipe should be mostly ready now. It could of course do with more testing, but I can't break it locally on two different operating systems, using three different compilers. Like I said yesterday, I can't test Apple, but it should be easy to patch any issues there.
I'll see if I can figure out how to push it to Conan Center, and any issues with the recipe can be handled as they show up (issues are also enabled in the recipe repo). I can submit a documentation update once I get it published if you want.
from ixwebsocket.
I should probably update this. I figured I'd wait until I heard back from Bintray, but I haven't heard anything.
I've finished off the rest of the inclusion requirements and submitted it for inclusion. I haven't gotten a reply yet. When it gets included, just adding the dependency is enough. For the record, it's:
IXWebSocket/5.0.0@LunarWatcher/stable
In the meanwhile, it can be accessed by adding a new remote (conan remote add remote_name_here https://api.bintray.com/conan/oliviazoe0/conan-packages
).
I'm not sure if you want to make a temporary documentation update while the request gets processed, but either way, the recipe is up.
from ixwebsocket.
from ixwebsocket.
from ixwebsocket.
I had to set up CI as a part of the inclusion criteria, and the Mac builds pass there at least. But that's also a full build, and not direct local inclusion. That being said, it works fine locally on Linux and Windows (no local build - pulling straight from Bintray). Still waiting for a reply from Bintray (I really have no idea how long this will take at this point).
The instructions appear to be fine, but you have a copy-paste error on the remote line (an accidental ).
snuck in at the end of the code block).
from ixwebsocket.
I just released 5.0.4 which had a build fix on Windows, if this matter.
Not sure what we should do with this ticket, can we close it?
Did bintray ever replied ?
from ixwebsocket.
I haven't gotten a reply yet. No idea when I can expect it either. Thanks for the message though - I'll set up some builds and push 'em (I see I've missed a few versions - I need to find a decent notification system).
I suppose it makes sense to close this issue. I'll rather leave a comment on this if I get a reply from them - the problem itself is fixed.
from ixwebsocket.
It seems the former Bintray inclusion process has been deprecated, so I guess I'll never get a reply.
I'll poke around and see what I can find on the new inclusion process. I'll have to check if the project qualifies, and how badly it breaks the recipe. The existing conan repo and everything I've mentioned earlier should:tm: still work regardless of inclusion. It seems Bintray is used as well, so it shouldn't break that at least, regardless of the inclusion outcome. I'll keep you updated when I figure out the main stuff.
from ixwebsocket.
from ixwebsocket.
Sorry about the delay.
From what I can tell, it's just a different build process. The teaks should be minor and I'm already working on that. There doesn't seem to be any requirements. All I need is (in theory:tm:) a PR and to be in the early access program, which I requested and was let into a few days ago. It's not specifically exclusive, it's actually very open. Anyway, I'm gonna be working on the recipe and testing over the next few days. There's a few factors I'm not sure about yet, such as how to go about mitigating the few builds that're somehow broken - for an instance, the release with Windows bugs a while ago, and how libraries specify the version of C++ they're using. Abeit some C++11 libraries doesn't specify anything, so it might be fine.
Anyway, I'll send you a link whenever I submit the PR
from ixwebsocket.
PR submitted. There might be more work to do before it gets merged, but I'll stay on top of that as problems show up
from ixwebsocket.
from ixwebsocket.
Looks like everything is ready. Waiting on a final review (ended up bumping the version, but the version before that was cleared), so it should be merged some time tonight. I'll submit a documentation change PR (here) for conan usage whenever my PR for conan center gets merged in (Conan 1.21.x includes several changes, which I need to get into before I submit a documentation PR). There's a heavy reduction in the amount of versions available, but it's much easier to keep up to date now. It'll also be easier to access (no more explicit remotes to use the library)
from ixwebsocket.
Related Issues (20)
- Allow to bind after construction of `ix::WebSocketServer` and `ix::HttpServer` HOT 1
- Need a way to identify the clients of a WebsocketServer HOT 1
- How to build project that includes IXWebSocket without using vcpkg HOT 1
- the client did not receive the close event HOT 3
- Cannot link against IXWebsocket HOT 1
- HTTPServer questions? HOT 2
- Question about weak_ptr in API HOT 1
- Source code release v11.4.4 contains an error in IXSocketMbedTLS.cpp line 52 HOT 3
- Can I use IXHttpClient to upload files to server? HOT 1
- each http request cause socket reconnection HOT 1
- [BUG] Does not receive a close or error message. and the mapping configured in the host file does not take effect
- Memory leak in proxy code HOT 4
- Universal Windows application TLS certificate issue HOT 2
- UWP App undefined method PathMatchSpecA HOT 2
- Client connection closed immediately on re-connection after ping timeout HOT 1
- Disable ZLIB when install as vcpkg package? HOT 1
- Build error. (mbedtls) HOT 2
- [Feature Request] Add support for OpenSSL SSLKEYLOGFILE HOT 9
- Unable to connect to ws endpoint behind standard AWS load balancer (ALB) HOT 8
- CMake packaging doesn't support example usage HOT 2
Recommend Projects
-
React
A declarative, efficient, and flexible JavaScript library for building user interfaces.
-
Vue.js
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
-
Typescript
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
-
TensorFlow
An Open Source Machine Learning Framework for Everyone
-
Django
The Web framework for perfectionists with deadlines.
-
Laravel
A PHP framework for web artisans
-
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.
-
Visualization
Some thing interesting about visualization, use data art
-
Game
Some thing interesting about game, make everyone happy.
Recommend Org
-
Facebook
We are working to build community through open source technology. NB: members must have two-factor auth.
-
Microsoft
Open source projects and samples from Microsoft.
-
Google
Google ❤️ Open Source for everyone.
-
Alibaba
Alibaba Open Source for everyone
-
D3
Data-Driven Documents codes.
-
Tencent
China tencent open source team.
from ixwebsocket.