socketio / socket.io

Realtime application framework (Node.JS server)
https://socket.io
MIT License
61.2k stars 10.11k forks source link

Error is thrown out when Nodejs ups to 10.x #3319

Closed ghost closed 5 years ago

ghost commented 6 years ago

Current behaviour

For Nodejs 8.x and 9.x (with uws = 8.x) works properly.

For Nodejs 10.x + uws (>= 8.x <= 9.x): it throws an error saying "Error: Compilation of µWebSockets has failed and there is no pre-compiled binary available for your system. Please install a supported C++11 compiler and reinstall the module 'uws'".

For Nodejs 10.x + uws (>=10.x):cannot find module 'uws'.

Steps to reproduce (if the current behaviour is a bug)

Just assign 'uws' to wsEngine, each time I'll remove all the imports by directly removing node_modules and install them by running npm i. Then my uws is installed in the mode of dev-dependencies.

Expected behaviour

Works properly like Node 8 or 9.

Setup

Other Info

I found uws is deprecated now, so in the main page of Socket.IO SHOULD'T SUPPORT THAT any more (See https://socket.io/docs/server-api/ part). And maybe there's something code to be changed with, or change to a new lib something like uws.

See the DUPLICATED uws: https://www.npmjs.com/package/uws, the version is changing TOO RAPIDLY, not so stable.

Andrews54757 commented 6 years ago

@Maledong UWS has been deprecated because the owner wanted to make a hefty personal statement. There is nothing wrong with the code, but he has decided to go out of his way to publish an EMPTY package just to break about everything on the internet. What a f*ing dochebag.

https://www.reddit.com/r/node/comments/91kgte/uws_has_been_deprecated/

ghost commented 6 years ago

@Andrews54757:I see, however I'm not sure whether you've noticed that since Nodejs 10.x, the uws cannot be used and there'll be runtime error... This is a serious problem, and we have to use Node v8, 9, if we wanna keep this uws or when the author fixed that.... Try to think what will we do if we're running on Nodejs 10.x or later versions in the future according to this senario?! And this is just what I'm worrying about, so hope you understand.

I don't mean the BUG is created in your own project but just because of this f**ing reason. Maybe we have to work around this problem by removing this or doing something trick to cope with that.

What's more, the version is changing too rapidly, which looks unstable:(

What a f*ing dochebag.

Ah ha haha……

Andrews54757 commented 6 years ago

@Maledong Hmm, UWS with NodeJS 10.x does not work? I am using nodejs 10.10.0 and UWS is working fine.

Make sure to use the last UWS release that works (Not an empty package): 10.148.1

I had that error too. Fixed by switching UWS from latest to that version. Seems like the package owner intentionally broke stuff (He put an empty package), so of course you get the uws not found error.

That is why he is a f*ing dochebag. Not only did he deprecate it, but he put an EMPTY package as latest on the NPM registry. That means that installs with latest will not work as he intentionally broke it.

The empty package he published is version 10.148.2/99.0.0. Here are the files: uws.zip

Only the readme file, and the package.json file. That is it.

According to the user, this is why (Not making url to prevent linking back here):

https://github.com/uNetworking/uWebSockets-node/issues/1

ghost commented 6 years ago

This is the problem I've been meeting with, I'm not sure whether you've seen this for uws is 10.148.1? Removed node_modules and run npm i, still occurs :(

image

Nodejs:8.12.0,10.10.0(Windows 8.1 sp1, x86)

8.14.1:It works well with me in Node 8.x and 9.x :)

ghost commented 6 years ago

In my test, it seems ONLY 10.148.0 works on me without any other configs, leave it here for others if they need help :)

Thank you for your help again @Andrews54757 , It's YOU that have minded and tipped me to have a try of different kinds of versions!