Do all the things like ++ or -- rants, post your own rants, comment on others' rants and build your customized dev avatarSign Up
From the creators of devRant, Pipeless lets you power real-time personalized recommendations and activity feeds using a simple APILearn More
Search - "websocket"
Its Friday, you all know what that means! ... Its results day for practiseSafeHex's most incompetent co-worker!!!
We've had a bewildering array of candidates, lets remind ourselves:
- a psychopath that genuinely scared me a little
- a CEO I would take pleasure seeing in pain
- a pothead who mistook me for his drug dealer
- an unbelievable idiot
- an arrogant idiot obsessed with strings
Tough competition, but there can be only one ... *drum roll* ... the winner is ... none of them!
*audience member: what?*
*audience member: no way!*
*audience member: your fucking kidding me!*
Sir calm down! this is a day time show, no need for that ... let me explain, there is a winner ... but we've kept him till last and for a good reason
You see our final contestant and ultimate winner of this series is our good old friend "C", taking the letters of each of our previous contestants, that spells TRAGIC which is the only word to explain C.
Oh I assure you its no laughing matter. C was with us for 6 whole months ... 6 excruciatingly painful months.
We needed someone with frontend, backend and experience with IoT devices, or raspberry PI's. We didn't think we'd get it all, but in walked an interviewee with web development experience, a tiny bit of Angular and his masters project was building a robot device that would change LED's depending on your facial expressions. PERFECT!!!
... oh to have a time machine
Working with C:
- He never actually did the tutorials I first set him on for Node.js and Angular 2+ because they were "too boring". I didn't find this out until some time later.
- The first project I had him work on was a small dashboard and backend, but he decided to use Angular 1 and a different database than what we were using because "for me, these are easier".
- He called that project done without testing / deploying it in the cloud, despite that being part of the ticket, because he didn't know how. Rather than tell or ask anyone ... he just didn't do it and moved on.
- As part of his first tech review I had to explain to him why he should be using if / else, rather than just if's.
- Despite his past experience building server applications and dashboards (4 years!), he never heard of a websocket, and it took a considerable amount of time to explain.
- When he used a node module to open a server socket, he sat staring at me like a deer caught in headlights completely unaware of how to use / test it was working. I again had to explain it and ultimately test it for him with a command line client.
- He didn't understand the need to leave logging inside an application to report errors. Because he used to ... I shit you not ... drive to his customers, plug into their server and debug their application using a debugger.
... props for using a debugger, but fuck me.
- Once, after an entire 2 days of tapping me on the shoulder every 15 mins for questions / issues, I had to stop and ask:
Me: "Have you googled it?"
C: "... eh, no"
Me: "can I ask why?"
C: "well, for me, I only google for something I don't know"
Me: "... well do you know what this error message means?"
C: "ah good point, i'll try this time"
... maybe he was A's stoner buddy?
- He burned through our free cloud usage allowance for a month, after 1 day, meaning he couldn't test anything else under his account. He left an application running, broadcasting a lot of data. Turns out the on / off button on the dashboard only worked for "on". He had been killing his terminal locally and didn't know how to "ctrl + c a cloud app" ... so left it running. His intention was to restart the app every time you are done using it ... but forgot.
- His issue with the previous one ... not any of his countless mistakes, not the lack of even trying to make the button work, no, no, not for C. C's issue is the cloud is "shit" for giving us such little allowances. (for the record in a month I had never used more than 5%).
- I had to explain environment variables and why they are necessary for passwords and tokens etc. He didn't know it wasn't ok to commit these into GitHub.
- At his project meetups with partners I had to repeatedly ask him to stop googling gifs and pay attention to the talks.
- He complained that we don't have 3 hour lunch breaks like his last place.
- He once copied and pasted the same function 450 times into a file as a load test ... are loops too mainstream nowadays?
You see C is our winner, because after 6 painful months (companies internal process / requirements) he actually achieved nothing. I really mean that, nothing. Every thing was so broken, so insecure / wide open, built without any kind of common sense or standards I had to delete it all and start again ... it took me 2 weeks.
I hope you've all enjoyed this series and will join me in praying for the return of my sanity ... I do miss it a lot.
We're using a ticket system at work that a local company wrote specifically for IT-support companies. It's missing so many (to us) essential features that they flat out ignored the feature requests for. I started dissecting their front-end code to find ways to get the site to do what we want and find a lot of ugly code.
So i dig farther and farthee adding all the features we want into a userscript with a beat little 'custom namespace' i make pretty good progress until i find a site that does asynchronous loading of its subpages all of a sudden. They never do that anywhere else. Injecting code into the overcomolicated jQuery mess that they call code is impossible to me, so i track changes via a mutationObserver (awesome stuff for userscripts, never heard of it before) and get that running too.
The userscript got such a volume of functions in such a short time that my boss even used it to demonstrate to them what we want and asked them why they couldn't do it in a reasonable timeframe.
All in all I'm pretty proud if the script, but i hate that software companies that write such a mess of code in different coding styles all over the place even get a foot into the door.
And that's just the code part: They very veeeery often just break stuff in updates that then require multiple hotfixes throughout the day after we complain about it. These errors even go so far to break functionality completely or just throw 500s in our face. It really gives you the impression that they are not testing that thing at all.
And the worst: They actively encourage their trainees to write as much code as possible to get paid more than their contract says, so of course they just break stuff all the time to write as much as possible.
Where did i get that information you ask? They state it on ther fucking career page!
We also have reverse proxy in front of that page that manages the HTTPS encryption and Let's Encrypt renewal. Guess what: They internally check if the certificate on the machine is valid and the system refuses to work if it isn't. How do you upload a certificate to the system you asked? You don't! You have to mail it to them for them to SSH into the system and install it manually. When will that be possible you ask? SOON™.
At least after a while i got them to just disable the 'feature'.
While we are at 'features' (sorry for the bad structure): They have this genius 'smart redirect' feature that is supposed to throw you right back where you were once you're done editing something. Brilliant idea, how do they do it? Using a callback libk like everyone else? Noooo. A serverside database entry that only gets correctly updated half of the time. So while multitasking in multiple tabs because the performance of that thing almost forces you to makes it a whole lot worse you are not protected from it if you don't. Example: you did work on ticket A and save that. You get redirected to ticket B you worked on this morning even though its fucking 5 o' clock in the evening. So of course you get confused over wherever you selected the right ticket to begin with. So you have to check that almost everytime.
Alright, rant over.
Let's see if i beed to make another one after their big 'all feature requests on hold, UI redesign, everything will be fixed and much better'-update.5
Decided to try and remove everything google from my phone by using a root app uninstaller since my phone runs the stock rom.
Thought it would break my phone and was preparing for a recovery flash...
I now run a stock rom without anything Google 😍
Even signal works fine with a background websocket connection.
Google, unkindly go fuck yourself.24
My very first rant. I will try to make it count!
Recently my company had restructured with new GM who fired those who he didn't like and hired those who he did.
All ok I guess. And then...
We did a project for a big sportswear brand, interactive installation using WebSocket. My team developed the server with game engine and we also developed "shell front-end" with example code how to connect and interact with server.
Then we realized that our company was actually not hired by sportswear brand, rather by GM buddy-from-the-army tech vendor, who was hired by actual client.
Then, we also realized there is another company, that GM hired as freelancers, sitting at our office doing 'something'. And this 'other company' actually has same employees and address as GM's buddy company (meaning they are one entity with two names).
So.. what happened is that we get paid by party A, then we pay exactly the same amount to party B (which is actually same party A), and at the end... all our work was for free.
And then, this GM tells me I have to fire 2 developers from my team because we don't have enough business.
How did this guy even get to a position of this level?9
Last Friday company-wide call consisted of the sales CEO bossman, the remote contractor dev, and myself. The only topic of discussion was CTO-bashing (bossman's favorite). Neither person had much of anything to say about their week, and they didn't want to hear my rather-lengthy summary either (I did a lot). All they wanted to do was bash the CTO (API Guy).
The CEO asked how many hours I had worked, and seemed annoyed when I said less than 40. Well screw you. Monday was Christmas, and Sunday was Encroaching Estranged Asshole Day. (Earlier rant)
I've been spending most of my time trying to learn the steaming mountain of rancid hippo shit that API Guy squeezed out, since he's leaving forever in 10 days. Sure, CEO bossman says he'll still be around to answer questions, but even with him right next to me in the office he's less than useful. After he's gone and finally feeling free of this farce? It'll be worth fuck-all.
So bossman is mad at me for both not working enough over Christmas, and not pumping out features at a frantic pace despite multiple explanations of why this is a bad idea. And he didn't care about what work I actually did do.
My every interaction with him makes me angry. Whenever I -- or anyone else -- does something he doesn't approve of, seemingly no matter the reasoning, he makes it out to be a failure on their part, and like he can't trust them as much now.
Well I'm sorry we're trying to make sure our websocket works perfectly before putting it in the hands of our customers who rely on it for cash processing.
I'm sorry I'm trying to recall printers that aren't configured properly, which also prevent customers from using our goddamn service they're paying for.
I'm sorry I'm trying to learn how everything works while I still have someone to talk to and ask questions of.
I'm sorry I'm preparing for the day I have to take over and have you breathing down my neck. Once API Guy's gone I'll be responsible for everything, and you'll be yelling at me and having a @Root bashing session instead if I don't know how to fix everything right away.
But no. All you care about is that I talk to you about what's going in so you can micromanage development despite having zero fucking understanding of goddamn anything. All you ever fucking want is the next shiny feature you can push to make more sales / keep your current contacts happy. Doesn't fking matter if it makes development awful later; that's tomorrow's problem. And yet you have the gall to bash API Guy over and over and over again for the codebase being a mess? Sure he's a terrible programmer, but been putting up with this exact same shit for five years. No wonder it's a mountain of rancid hippo shit. That's as much your fault as his, asshole.
I'm so sorry you "have serious concerns" about me. I don't want to put up with your shit either.
Fuck off and die.22
The dev's over at paysafecard.com forgot to switch their environments.
They have websocket code in production that tries to connect to a localhost server3
Preface: i'm pretty... definitely wasted. rum is amazing.
anyway, I spent today fighting with ActionCable. but as per usu, here's the rant's backstory:
I spent two or three days fighting with ActionCable a few weeks ago. idr how long because I had a 102*f fever at the time, but I managed to write a chat client frontend in React that hooked up to API Guy's copypasta backend. (He literally just copy/pasted it from a chat app tutorial. gg). My code wasn't great, but it did most of what it needed to do. It set up a websocket, had listeners for the various events, connected to the ActionCable server and channel, and wrote out updates to the DOM as they came in. It worked pretty well.
Back to the present!
I spent today trying to get the rest to work, which basically amounted to just fetching historical messages from the server. Turns out that's actually really hard to do, especially when THE FKING OFFICIAL DOCUMENTATION'S EXAMPLES ARE WRONG! Seriously, that crap has scoping and (coffeescript) syntax errors; it doesn't even run. but I didn't know that until the end, because seriously, who posts broken code on official docs? ugh! I spent five hours torturing my code in an effort to get it to work (plus however many more back when I had a fever), only to discover that the examples themselves are broken. No wonder I never got it working!
So, I rooted around for more tutorials or blogs or anything else with functional sample code. Basically every example out there is the same goddamn chat app tutorial with their own commentary. Remember that copy/paste? yeah, that's the one. Still pissed off about that. Also: that tutorial doesn't fetch history, or do anything other than the most basic functionality that I had already written. Totally useless to me.
After quite a bit of searching, the only semi-decent resource I was able to find was a blog from 2015 that's entirely written in Japanese. No, I can't read more than a handful of words, but I've been using it as a reference because its code is seriously more helpful than what's on official Rails docs. -_-
Still never got it to work, though. but after those five futile hours of fighting with the same crap, I sort of gave up and did something else.
The moral of the story is that if you publish broken code examples beacuse you didn't even fking bother to test them first, some extremely pissed off and vindictive and fashionable developer will totally waterboard the hell out of you for the cumulative total of her wasted development time because screw you and your goddamn laziness.8
LONELINESS IS REAL
I am a freshman in a university ( about to complete my first year ) with a girl to boy ratio of around 1:10. During my first semester I was spending a lot of time with friends, chatting up with people and making connections. Due to this my productivity as a dev, if I am even capable of being called that decreased ( I was not a developer before joining , but I had an aim of being one , esp at least the best in my batch ) after 1st year. In retrospect I did nothing productive till 3 months out of 4 in my first sem and the guilt hit me hard . During the last month I had to catch up with my much neglected studies and all I had done was a little bit of html and css, and barely scratched the surface of js( please don't judge me for this :) , I had to start somewhere < although I learned a little bit of C++ > ). BUT I WAS A HAPPY CUNT, and had no sign of lonelines. Now during this sem , I had made progress ( learn js with es6 syntax and still learning, did c++ and extended my knowledge ) . Currently I am working on my Vue full stack app ( along with express and some websocket library , TBD ) < yeh I learnt some backend too > , and increasing my knowledge of dsa using clrs. Although my productivity has increased manifolds but I know feel the need of closure. I am kinda happy with the fact that I know a lot of people around here ( thanks to my extroverted 1st semester ) but sometimes it hits me hard at night when I don't have a monitor to drown my eyes and thoughts in. I have increased my academic performance too but I need someone to share and express my feelings with. I could have made a girlfriend earlier but now most of them are taken and I have lost touch. But believe me, all I want is a companion to spend these lonely days and night ( not talking about as a friend ). Staying away from home isnt easy you know...m :(
KUDOS TO DEVRANT FOR DEVELOPING A COMMUNITY WHERE PEOPLE LIKE ME CAN FEEL SAFE IN OUR NATURAL HABITAT. I COULDN'T HAVE EXPRESSED MY FEELINGS ANYWHERE ELSE EXCEPT IN A PERSONAL BLOG ( where no one would have read it )
PS1: I apologise if I sounded arrogant about any of my skill, I didn't mean that way. I ain't even that good, just kinda proud of myself a little for achieving something I couldn't have thought.
PS2: Any type of suggestions and help is much appreciated ( considering I am a college student who went into some serious development 4 months ago , I am pretty impressionable ;) )
PS3: Please don't confuse this with depression. I am HAPPY BUT LONELY
PS4: Is there a way so that I can change my username?16
I seriously do not understand the rants against Windows.
I love Windows 10 (got as free upgrade from MS), and have no issues with MacOS or Linux OS. I use them as well but do all serious work on Windows.
All my life, I have worked on business / commercial side and picked up Web development in last couple of years. I started using computers on DOS in 1992, and shifted to Windows 3.0 in 1995. There was no Mac or MacOS back then.
For serious work, I purchased a old Dell Precision M4700 workstation grade laptop with quad-core i7, at throwaway price, got 32GB RAM, 2.4TB (1x2 TB + 400gb) of SSD on super sale online, and installed it myself. It easily supports dual 4k monitors.
Git-bash on windows allows all the necessary linux command line on windows. Though not tried, Windows 10 allows embedded Ubunutu with linux terminal. Web development tools like - VSCode, git, github / bitbucket clients, NVM/Node, React / Redux / Webpack / Gatsby / Jest, REST clients, GraphQL client and server, Graph Server, Chrome PWA / Chrome Dev Tools, http/Websocket/WebRTC interception, Google Firebase SDKs, AWS sdks, cloud utilities, CI/CD tools work flawlessly. Windows even has its own package manager for applications.31
This week actually. We had an Innovation Week. I was tired of waiting for the company's collaboration tech team to give us some kind of virtual whiteboard system (they also won't let us use things like Google Hangouts or Microsoft One Note, etc...so they make remote collaboration and planning almost impossible)
Anyways long story aside I proposed we make a virtual whiteboard we could host internally as a web app using STOMP over Websocket. They said "there's no way you can finish that in a week". I did.
And it came out great. It even supports pressure sensitivity and different brush textures. Everyone loves it and teams are like...wow we could use this member facing too. Had like 5 people around my desk connected to it drawing dicks for like 30 minutes. Then our boss joined remotely and saw the dicks. They laughed their ass off.
tldr; was told there was no way I would complete an ambitious innovation project...completed it with style. Damn I am good.
Spent a lot of time designing a proper HTTP (dare I even say RESTful) API for our - what is until now a closed system, using a little-known/badly-supported message-over-websocket protocol to do RPC-style communications - supposedly enterprise-grade product.
I make the API spec go through several rounds of review with the rest of the dev team and customers/partners alike. After a few iterations, everybody agrees that the spec will meet the necessary requirements.
I start implementing according to spec. Because this is the first time we're actually building proper HTTP handling into the product, but we of course have to make it work at least somewhat with the RPC-style codebase, it's mostly foundational work. But still, I manage to get some initial endpoints fully implemented and working as per the spec we agreed. The first PR is created, reviews are positive, the direction is clear and what's there already works.
At this point in time, I leave on my honeymoon for two weeks. Naturally, I assume that the remaining endpoints will be completed following the outlines/example of the endpoints which I built. When I come back, the team mentions that the implementation is completed and I believe all is well.
The feature is deployed selectively to some alpha customers to start validation testing before the big rollout. It's been like that for a good month, until a few days ago when I get a question related to a PoC integration which they can't seem to get to work.
I start investigating and notice that the API hasn't been implemented according to the previously agreed upon spec at all. Not only did the team manage to implement the missing functionality in strange and some even broken ways, they also managed to refactor my previously working endpoints into being non-compliant.
Now, I'm a flexible guy. It's not because something isn't done exactly as I've imagined it that it's automatically bad. However, I know from experience that designing a good/clear/future-proof API is a tricky exercise. I've put a lot of time and effort into deliberate design decisions that made up the spec that we all reviewed repeatedly and agreed upon. The current implementation might also be fine, but I now have to go over each endpoint again and reason about whether the implementation still fulfills the requirements (both soft and hard) that we set out to meet.
I'm met with resistance, pushback and disbelief from product management and dev co-workers alike when I raise the concern that the API might actually not be production-ready (while I'm frantically rewriting my integration tests and figuring out how the actual implementation works in comparison to what was spec'ed).
Oh, and did I mention that product management wants to release this by end-of-week?!7
What my twitter looks like after Cloudflare decides to randomly close all my websocket connections from my free Discord bot, leaving it to die from arbitrary rate limits.
Soo, my manager asked me to create tool for CSI. Sort of ticketing tool for service improvements.
So I spent a few months working on it including design, websocket based real time statistics, exports to their belowed excel, easy to use, fast and so on.
I've presented it to mgmt, told them that deployment was easy and just need a simple linux virtual and all is automated.
They told me that they don't have a server. Company where main business is cloud services. Didn't pay me a penny for my effort even though worked on that mostly in my free time.
I didn't even want anything for the tool, just for my time.
Then a month later they've introduced similar thing based on Sharepoint with 1/10th of fuctionality, slow as hell, buggy, unintuitive.
And guess what, I can't open source my tool because it is a company property.
So, fuck it, never gonna do anything again without proper contract, even if for the same department.
I've already left that hell hole, but thought I would share my story.
Worst code I ever had to touch: a React application, createClass era, before redux was a thing, that had everything in one fucking component.
Every fucking thing.
This was a simple video chat application, but still. The component's code included:
- Views (contact list and video call screen) and logic to switch between them;
- All application state;
- API calls;
- Websocket message handling;
- WebRTC logic (getUserMedia and p2p streaming).
This app was built by one person in one month for a demo. That person left the company after the demo and I had to maintain that mess without zero React knowledge (I was doing angular at that time). On his last day he gave me a crash course and an overview of how the app worked.
Around that time I attended a few meetups and a conference with talks about React. That, my curiosity and ability to learn by refactoring helped me a lot when I had to add new features and fix bugs in that app.5
TLDR; I was editing the wrong file, let's go to bed.
We have this huge system that receives data from an API endpoint, does a whole bunch of stuff, going through three other servers, and then via some calculation based on the data received from the UI, and data received from the endpoint, it finally sends the calculated fields to the UI via websocket.
Poor me sitting for over 4 hours debugging and changing values in the logic file trying to understand why one of the fields ends up being null.
Of course every change needs a reboot to all the 4 servers involved, and a hard refresh of the UI.
I even tried to search for the word null in that file, but to no avail.
After scattering hundreds of console logs, and pulling my hair out, I found out that I am editing the wrong file.
I guess it's time for some sleep.1
Sorry, need to vent.
In my current project I'm using two main libraries [slack client and k8s client], both official. And they both suck!
Okay, okay, their code doesn't really suck [apart from k8s severely violating Liskov's principle!]. The sucky part is not really their fault. It's the commonly used 3rd-party library that's fucked up.
yeah yeah, here come all the booos. Let them all out.
1. In websockets it hard-caps frame size to 16mb w/o an ability to change it. So.. Forget about unchunked file transfers there... What's even worse - they close the websocket if the frame size exceeds that limit. Yep, instead of failing to send it kills the conn.
2. In websockets they are writing data completely async. Without any control handles.. No clue when the write starts, completes or fails. No callbacks, no promises, no nothing other feedback
3. In http requests they are splitting my request into multiple buffers. This fucks up the slack cluent, as I cannot post messages over 4050 chars in size . Thanks to the okhttp these long texts get split into multiple messages. Which effectively fucks up formatting [bold, italic, codeblocks, links,...], as the formatted blocks get torn apart. [didn't investigate this deeper: it's friday evening and it's kotlin, not java, so I saved myself from the trouble of parsing yet unknown syntax]
yes, okhttp is probably a good library for the most of it. Yes, people like it, but hell, these corner cases and weird design decisions drive me mad!
And it's not like I could swap it with anynother lib.. I don't depend on it -- other libs I need do!
Created a Service for drawing online. Just as a canvas test. My friends seem to like it. :D
It's a WebSocket based system, I hate that node module but it works.8
You suck at push notifications. Please allow Google to do its good job (Firebase) without going through your servers.
It promised full-blown CRDT functionality. So I decided to adopt it.
Disappointment number one: you have to use CouchDB, so your data model is under strict regulations now. Okay.
Disappointment number two: absolutely messed up hack required to restrict users from accessing other users’ data, otherwise you have to store all the user data in single collection. Not the most performant solution.
Disappointment number three: pagination is utter mess. Server-side timestamps are utter mess. ANY server-side logic is utter mess.
Just to set it to work, you need PouchDB itself, websocket adapter (otherwise only three simultaneous syncs), auth adapter (doesn’t work via sockets), which came out fucking large pile of bullshit at the frontend.
Disappointment number four, the final one: auth somehow works but it doesn’t set cookie. I don’t know how to get access.
GitHub user named Wohali, number one CouchDB specialist over there, doesn’t know that either.
It also doesn’t work at Incognito mode, doesn’t work at Firefox at all.
So, if you want to use PouchDB, bear that in mind:
1. CouchDB only
2. No server-side logic
3. Authorization is a mess
4. Error logs are mess too: “ERROR 83929629 broken pipe” means “out of disk space” in Erlang, the CouchDB language.
5. No hosting solutions. No backup solutions, no infrastructure around that at all. You are tied to bare metal VPS and Ansible.
6. Huge pile of bullshit at frontend. Doesn’t work at Incognito mode, doesn’t work at Firefox.8
Ok so I have done some work with crypto currency mining pools and recently a client requested for me to make a splash page that showed data from multiple instances of these pools APIs. I went to find some documentation for this open source api and to my surprise there is none. I thought of querying the public API from the clients side and it worked, however it's so slow that the data shows up roughly 20 seconds after the page loads.
Easy fix right? Make a PHP server get the data every 5 seconds, cache it and serve the data with the page and use a websocket for live updates! Until I found out that there is no practical way in this garbage framework to get the damn API data without making an HTTP request or mutilating the original source code. I'm so done with this garbage framework. It literally loads pages based on a page and action parameter on the index.php. I quit.1
About 4-5 hours ago I wanted to make simple websocket to get input from textarea and parse it on server and somehow got myself into developing in asyncio -> aiohttp -> graphql-core -> graphql-ws -> aioredis
and svelte-> typescript
I still didn’t make the stuff I wanted but I’m very close on backend at least.
I have some frontend part somewhere in my old prototypes so it will be faster if I figure out svelte.
Still don’t understand what the fuck just happened.
Maybe it’s because I wanted try those frameworks for a long time.
All ‘simple’ examples I found have around 20-30 files for backend and same amount for frontend so more then 50 files to get this shit working.
They’re called oh irony “simple chat”.
Now I see why no one fucking understands this shit.
I’m trying to cut mine to 5 files.
I thought developers are lazy bastards who don’t like write code.
But now after this they’re all looking like adhd coders.
Looks like Monday won’t be my best day.9
Other peoples' code... (in C++)
I am finding what some people consider good code is not as described. I found a class that provides strings. Great it gives me paths and stuff. I incorporated it in a new project.
Hmmm, it must have an init function... It does, but not in the class. It has a friended init function:
friend init_function(). If this function is not created and called external to the class then the class will segfault...
I implement this. I use code from another project that implements this correctly. The friend class allows the private constructor to be called to create the main instance of the class. So its a fucking cryptic ass singleton. I look at this class. It uses a macro to decide what to function call in the class. The class already has function names for each call it needs to make. The class is literally a string lookup table. I vow to redo this shitty code, someday...
I start to wonder what other fragile code I will find. Not long later I keep getting errors on malloc. Like any malloc that is called results in a segfault. The malloc is not at fault though. I run valgrind and find a websocket library is returning an object a different size than the header file describes.
Somebody has left an old ass highly modified definition of the websocket header in a location in that I include headers (partly my fault). I eliminate that from my include path. All is well, everything behaves. I will be making sure this fucking header is not used and it is going to die. Wasted a bunch of time.
Lessons learned: some code is just fucked and don't leave old ass shit you tried laying around.5
I'm trying to get a websocket connection in Java spring boot to work and I'm close to commiting suicide.6
Background: I am currently working with a DB that has websocket functionality ("notify a client on insert/etc."). However, you do have to whitelist tables in order to use them with sockets.
I wanted to optimize my code and didn't want to mess with my coworkers dev-data, therefore I duplicated the table. After improving some small things I noticed that the interface does not change with new socket data. I have spent the last hour or so trying to figure out where I broke it.
I just realized that I forgot to whitelist that duplicated table 😐 Most relieving moment today 😅
Bonus side effect: The code is much cleaner now since I refactored a lot of the realtime-logic in order to understand it/fix the bug.3
Today I'm bringing a tool for you guys, mount servers with old phones Or have servers in your phone for testing.
Tool: Servers Ultimate Pro
Note1.: Doesn't handle well above android 6+, So test one of the free servers you're intending to use before buying.
Note2.: This App costs around 10€/$ but you can get single App servers for free (I think even html + php + mysql package for free).
Not promotional, I'm just a user that loves this App.
I already talked about this a few times (usually I just call the cell phone I'm using my web server), but as a noob I don't even knot the possibilities.
This App comes with more then 70 protocols (60+ servers and a mix of servers).
From ssh, ftp, html (nginx, lightppd, Apache, simple) with php and mysql, Webdav...
Run over 60 servers with over 70 protocols!
Now you can run a CVS, DC Hub, DHCP, UPnP, DNS, Dynamic DNS, eDonkey, Email (POP3 / SMTP), FTP Proxy, FTP, FTPS, Flash Policy, Git, Gopher, HTTP Snoop, ICAP, IRC Bot, IRC, ISCSI, Icecast, LPD, Load Balancer, MQTT, Memcached, MongoDB, MySQL, NFS, NTP, NZB Client, Napster, PHP and Lighttpd, PXE, Port Forwarder, Proxy, RTMP, Remote Control, Rsync, SMB/CIFS, SMPP, SMS, Socks, SFTP, SSH, Server Monitor, Stomp, Styx, Syslog, TFTP, Telnet, Test, Time, Torrent Client, Torrent Tracker, Trigger, UPnP Port Mapper, VNC, Wake On Lan, Web, WebDAV, WebSocket, X11 and/or XMPP server!
Im learning ALOT about C# these few months because i believe diving into more strict typed languages is a requirement to be a more well seasoned dev. With my journey I am leaving a nice trail of C# complaints. This sums up my frustration with the language and set of libraries. Above is a C# websocket handling some json sent over the line. Below is a node.js snippet setting up the entire connection and handling the return. The C# snippet is a compilation of 8 different 3rd part tutorials that I pulled together to make work for me. The node snippet is straight from the packages documentation. The native node.js implementations documentation is even better than the 3rd party packages docs. I highlighted the portions of the C# code that frustrate me to no ends. Without copying and pasting from different examples that implement it in numerous different ways, how am I to know how to instantiate a buffer ? I need a result and a getBytes method. I dont need to go read RFC6455 and implement it step by step myself to make a websocket handler. I would like to think we have evolved to the point of offering simple websockets.13
Ok .nets websocket implementation alone is about to have me drop the whole framework. I have a switch over all possible URLs in a middleware that checks if it’s a websocket request and then call my websocket handlers..... either that or use signal R 🤢. And I can’t use signal R without their magic client package 🤮. .Net is pissing me off more and more by the day.
Last weekend I was working on a small project for a friend of mine: a dockerized webapp, plus API backend and DB. I had some problems with the installation on the vps and had to try out different images and never really did a complete setup of my usual dotfiles. Got it running on an Ubuntu distro. Everything great.
It was the first release so I still had to check that every configuration worked ok, like letsencrypt companion container, the reverse proxy and all that stuff, so I decided to clone the whole project on the server tho make the changes there and then commit them from there.
Docker compose, 10 lines of code, change the hosts and password. Boom everything working. Great... Except for the images in the webapp.
WTF? Check the repo, here they are, all ok. I try different build tactics. Nothing. Even building the app on another docker always the same. Checked browser cache, all the correct ports are open. I even though that maybe react was still using some weird websocket I didn't know, but no.
Damn, I spent 5 hours checking why the f*** the server wouldn't make it out.
Then, finally, the realization...
I didn't install the f******* git-lfs plugin and all I was working with were stupid symbolics links! Webpack never even throw an error for any of the stupid images and the browser would only show a corrupted image, when decoding the base64 string.
Literally the solution took 5 minutes.
F*** changes on production, now I do everything on a fully automated CI.
Hey ya'll back with another college boi question.
I want to develop a web server akin to that of jackbox/among us. Where each session has like an 'ABCXYZ' style code, and i assume are using TCP sockets on the back end.
I'll be writing in Go cause I <3 Go and its a chad language. Anywho, am i supposed to spin up a new websocket server each time someone wants to make a room? Or do i have one websocket server and some sort of map of rooms.
gameRooms := map['id_string']clients
Anyone have any suggestions for this?7
Whenever I was working heavily with dynamically allocated websocket ports and having to make strategies for connecting them via this UI, I would dream that I was a switchboard operator connecting and reconnecting for what felt like hours.
And it always felt like a fever dream where I’m just having a panic through the whole experience and waking up in cold sweat. That went on for that whole month of 2018.
I am excited about Websocket getting more popular. I just completed a project using it. It is so good for sending market data to the front.
Since tcp sockets cannot have custom headers and cannot contain post request values, is a vpn tunnel the only real secure way to set up websocket connections for 3rd party connections to my API ?4
CGI is fun, websockets are fun, why on earth is it so fucking hard to have both of them with proper switching using at most one extra program apart from my handlers?
By proper switching I mean that you actually track connections and upgrade headers to decide what to do, rather than forcing websocket connections onto a separate HTTP resource just to tell the difference.4
Why TF does nodejs just eats 100mb of ram away for a simple application with ONE websocket connection ? I've tried getting some heap snaps, memory allocation timelines and used memwatch-next, but to no result AT ALL! Since the heap stay small but the rss memory grows like there is no tomorrow.
Fuck this shit. Any socket connection on JIO's fucking network gets dropped after 5 seconds if no data is sent. It's working on any other network. Wtf is going on???
Does anyone have any idea on this?
If someone has jio network please go to https://www.websocket.org/echo.html
And connect and check how long until it gets disconnected. Would be greatful if someone can validate this.
The project I am working on uses websockets extensively and this thing is screwing it up. I have temporarily set websocket ping interval to 3 seconds but what if the f**ckers over at JIO decide to start dropping connections every 1 second?7
I've always heard that developers and well engineers in general tend to have some unique dreams in times where their work presses them to limits. Sometimes it's stacking hypothetical boxes in specific orders or plugging and unplugging things. Well I've been playing with some complex tcp server concepts and theories lately and started running a really bad fever last night. My whole night consisted of falling asleep, consistently connecting websocket servers to clients, getting socket hang up errors from which I'd then wake up in cold sweat and fall back asleep only to find myself debugging again. My bosses response was f*** man take a vacation 😂😂, drink more, but ya we need this done in 2 weeks
Follow-up of https://devrant.com/rants/2014517/...
It took me two days to finally get my discord bot to a specific voice channel in my guild/server. It turns out that there are two gateways and one https gateway. The https gateway, the main gateway with a websocket connection and a voice gateway (with udp I guess).
Guess that I will be able to let my bot speak at the end of this week.
The documentation of the Discord API is not so good. It contains examples that won't work even if correctly modified. That is why I joined the Discord API guild/server yesterday and they helped me find the solution to the "I get no response from the voice gateway".
It is only getting more complicated, but I love it. Maybe I love hurting myself lol.4
!rant && dev
Before I dig deep and pick the minds on S/O, I'm trying to test an app (Cordova) on my wife's phone (Samsung/Android 7) - the feature I'm testing works fine on mine (Huawei/Android 8).
Where it seems to be faulty is making a WebSocket connection to my server - is there any known issues people are aware of? Recent security updates or something?
I'd jump straight on to USB debugging, but last time I tried to do this on Samsung, it simply failed to show up as a known device - tried loads of drivers...1
Hooray! voice is now working on localhost! Now to find a high latency, low reliability connection to stress-test the thing. Do you reckon sending the packets 3 times to echo.websocket.org is unreliable enough?
Got an interesting approach or question about how to approach an idea:
i need users on an IOS app, while on a certain map view to constantly update coordinates in redis everytime their location changes. I also need these users to get updates each time another users updated coordinates are updated a with lat/long within a defined proximity of theirs.
For a POC, would it make more sense to fiddle with SignalR (.net) or socket.io (node) to implement a websocket based approach or would it make more sense to build a poller for constantly retrievin new user coordinates ?
Updating coordinates is simple cause IOS has an event for when their coordinates change so I know when to update redis but as far as keeping the user updated with other users, im not sure the best approach.
Hi all! I am trying to implement websocket in js and want to send authorization jwt to server. but couldn't because it only support protocols. Any other websocket client library jn js that could help to achieve it?11
Yesterday. Mean stack exam tomorrow. Only study for the websocket question. Go to the exam. Teacher says pick a question. Folded paper with questions on table. One is not neatly folded, so can see through. Says websockets. Pick question. Forget half the stuff about http protocols. Still got a B. :D
Now, time for coffee.3
After having to develop on windows for 2 years I had to make a websocket based communications service for Linux. It was just so nice having proper tools again...
Wasted an hour or two on that...
After changing the library I used, was trying to test that my Java WebSocket client was reconnecting as I intended upon losing connection.
Me : Why are you making the rest of the app bug you stupid fucker? The old one was doing fine!
WS : ...
Changes code, looks on SO a bit.. Gets despaired.
Then it struck..
The "rest of the app" was connected to a sensor.. On the network.. From which I disconnected to mimic a loss of connection...
Has anyone developed websocket server in Nodejs?
I am planning to use socketcluster. Has anyone had experience using it? Is it good or should I go for something else?11
Jesus Christ , how does one connect to a third party websocket stream in Laravel. It seems to be so damn complicated with the involvement of Pusher, Broadcast, Echo and a bunch of other useless packages. On Top of that there are no tutorials on this, everyone is busy building a chat app and even then i tried following along, it doesn't work. Does anyone know how to do this?
In python, it is as simple as this
SOCKET = "wss://stream.binance.com/ws/..."
ws = websocket.WebSocketApp(
SOCKET, on_open=on_open, on_close=on_close, on_message=on_message
) //you get the damn data
In Laravel, it so bloody complicated.
This is a super general question but if you can, play along and entertain my curiosity.
For a barebones simple messaging app to work that maintains at the most 1000 connections at once, each user expects real time updates to when a message is incoming.
I can use redis pub/sub to handle the multicasting needed so that users are not all dangling on websockets together but for a user to even know in real time that a message has been broadcasted for them and that they're client needs updated with the message, would a websocket for each client still be needed ?
And if so, each user cant connect to one socket that relays all information so each user ideally would have a connection over lets say /engine/listen/<user-id>.
Does this sound like an approach thats even near right and if so, how many of these websocket connections can be maintained on a given server ?
Do i need to have as many instances running in each most readily available zone for each limit met in websocket connections ?4
I've been working on a project that involves realtime messaging and i intend to also allow the comments count to update in real-time with websocket.
What i currently do is, when a user post's a comment the socket is notified to refresh the posts list page. (But if many users are commenting simultaneously that would be so many updates per few seconds. )
What's the best way around realtime comment-count updates in webapps.8
Ok this is either my code, socket.io or China. So I wrote DApp for my crypto project but for some reason our Chinese users have problems using it... So i dig through our code for HOURS! and finally resort to making an AJAX call from the client to a hideous PHP script for logging and what do i find?
For some reason the WebSocket cannot connect. I haven't mapped this so it's only conjecture but I think the GFW is blocking my users connections? (Also using a VPN seems to fix it)
Anyone else had this issue?1