BinaryRPC – Lightweight WebSocket-based RPC framework in modern C++
https://github.com/efecan0/binaryrpc-framework
#HackerNews #BinaryRPC #WebSocket #C++ #Framework #LightweightRPC #ModernC++

BinaryRPC – Lightweight WebSocket-based RPC framework in modern C++
https://github.com/efecan0/binaryrpc-framework
#HackerNews #BinaryRPC #WebSocket #C++ #Framework #LightweightRPC #ModernC++
yesterday at #DevConf_CZ I talked about browser automation with #webdriverbidi . You can do cross-browser remote control or website/Web app testing with nothing more than a #websocket client, such as websocat or python-aiohttp or anything else. This shows the history and working your way up from interactive direct protocol in websocat over shell script to a comfy #python library. Everything is in this repo:
p5.js Web Editor で編集中のコードをローカルに投げる Chrome 拡張機能を作った
https://qiita.com/Snowman-s/items/cde7e47de371a2c6a246?utm_campaign=popular_items&utm_medium=feed&utm_source=popular_items
I've released v6.0.0 of Socketless, the #Websocket based #Javascript #RPC library where you never write any RPC or websocket code, because you should not have to care.
Get it over on https://www.npmjs.com/package/socketless and see https://github.com/Pomax/socketless/blob/main/docs/CHANGELOG.md for the changes.
New Kitten release
• New: Lovely new icons¹ and new callouts in Kitten Settings²
• New: Markdown now supports attributes and bracketed spans³
• New: client-side `kitten` global with `trigger` function for triggering events on the server from the client. (Useful when streaming client-side JavaScript when using Kitten’s Streaming HTML⁴ workflow. e.g., when you have to use a client-only web API like the Clipboard API but you want to keep all your logic on your server-side page.⁵)
• Fixed: The bound render function returned by `KittenComponent` class’s `component` getter now correctly awaits asynchronous templates. (In Kitten, you don’t have to care whether your templates contain promises. Kitten handles all that for you.)
Enjoy!
¹ https://kitten.small-web.org/reference/#icons
² https://mastodon.ar.al/@aral/114381983893061099
³ https://kitten.small-web.org/reference/#markdown-support (also see https://mastodon.ar.al/@aral/114381462302862256)
⁴ https://kitten.small-web.org/tutorials/streaming-html/
⁵ e.g., See how I use this to implement a copy to clipboard button in the database page of Kitten’s Settings: https://codeberg.org/kitten/app/src/branch/main/web/%F0%9F%90%B1/settings%F0%9F%94%92/db/index.page.js#L33 Of course, you don’t have to use this and you can just write client-side JavaScript or use the built-in Alpine.js integration. e.g., how I do it on the (older) settings/identity page: https://codeberg.org/kitten/app/src/branch/main/web/%F0%9F%90%B1/settings%F0%9F%94%92/identity/index.page.js#L7
If you are a #developer and need to combine several #protocol #bindings for an #IoT system, the ACME-CSE provides a great environment for learning and experimentation https://acmecse.net/home/Supported/ #CoAP #http #MQTT #WebSocket
Live updates without the hassle? Yes, please. With HTMX and Razor Pages, you can sprinkle real-time magic using SSE—no WebSocket setup is required. Check out how to keep your UI fresh and reactive: https://woodruff.dev/real-time-magic-live-updates-with-htmx-and-asp-net-razor-pages/
Eaglercraft is sooo annoying to deal with like plugins that allow a eaglercraft player to join a mc server have ass behavior, eaglerXproxy treats eaglercraft players like online players which means they bypass auth unless you have the internal auth system enabled, but that doesnt work with offline mode players. in addition eaglercraft players lack minecraft channels which means i cant have commands executed if one joins. All of this is terrible behavior and at the end of the day its stupid that they used a custom protocol instead of just putting the normal minecraft protocol in a websocket like mcraft.fun does.
New episode of vvvvTv is out: S02E09: Controlling apps via a Web UI using WebSocket
https://www.youtube.com/live/DR1ay0WR418?si=jiwwiKraMf7WgWXE
#vvvv #creativecoding #visualprogramming
#dotnet #vvvvTv #websocket
New episode of vvvvTv is out: S02E08: Multiplayer Installation using WebSocket
https://www.youtube.com/live/GtKx2v5Egxw?si=Y_C333EjM0P45xea
#vvvv #creativecoding #visualprogramming
#dotnet #vvvvTv #websocket
New episode of vvvvTv is out: S02E07: Talking to an API via WebSocket
https://www.youtube.com/live/TTvkQgGZfZw?si=tBfqQOSQ5Aq4LTGM
#vvvv #creativecoding #visualprogramming
#dotnet #vvvvTv #websocket
New Kitten Release
• Automatic message routing: if the element that triggers an event on the client does not have a `name` attribute, Kitten now falls back to using its `id` instead to route the event to the correct server-side event handler on your live Kitten pages.
If neither attribute exists, Kitten will fail to route the message but no longer crash as it was due to a regression introduced when I implemented support for colons in element names.¹
For more details on Kitten’s live pages and automatic message routing, please see the Streaming HTML tutorial:
https://kitten.small-web.org/tutorials/streaming-html/
Enjoy!
¹ A colon in an element name is ignored for message routing purposes, letting you, for example, give unique names to <details> elements, allowing more than one to be open at a time, while having their events be handled by the same handler.
WebSocket vs Socket.IO: Real-Time Communication Guide https://jsdev.space/websocket-socketio/ #javascript #websocket #socketio
New Kitten release
• Fixes issue with routes where dynamic routes with file names that had more than two extensions were not recognised as the correct type of route. e.g., A route called index.xml.get.js would previously have been treated as a static route instead of a dynamic GET route.
For more details, see the Valid File Types section of the Kitten reference¹ and the Dynamic Pages tutorial².
Enjoy!
¹ https://kitten.small-web.org/reference/#valid-file-types
² https://kitten.small-web.org/tutorials/dynamic-pages/
Golems GABB: Drupal and WebSocket for Real-time Data Rendering. #drupal #WebSocket
https://gole.ms/blog/drupal-and-websocket-real-time-data-rendering
Golems GABB: Drupal and WebSocket for Real-time Data Rendering. #drupal #WebSocket
Posted into SYMFONY FOR THE DEVIL @symfony-for-the-devil-mobileatom
New Kitten release
• You can now use key paths in the names of your client-side live components and these will automatically be transformed into object hierarchies on the server for you.¹
• Self heals zombie live pages (see Streaming HTML workflow²) if they return to life due to client-side browser cache.³
• Removes htmx⁴ headers from `data` property into separate `header` property in Kitten Page events and the data your Kitten Page message handlers receive.
• Automatically passes references to the live page object (if any) and the request and response objects to the layout templates of Markdown pages⁵ (so you can, for example, check if `request.session.authenticated`⁶ is true from the your layout template and customise the layout accordingly).
Enjoy!
¹ e.g., See https://codeberg.org/small-tech/site/src/branch/kitten/admin%F0%9F%94%92/news/index_%5Boptional-postId%5D.page.js#L356 (markup) and https://codeberg.org/small-tech/site/src/branch/kitten/admin%F0%9F%94%92/news/index_%5Boptional-postId%5D.page.js#L173 (handler) and https://codeberg.org/small-tech/site/src/branch/kitten/app_modules/database/database.js#L95 (model class method).
² See Streaming HTML tutorial: https://kitten.small-web.org/tutorials/streaming-html/ (There’s actually more to it now but I haven’t had a chance to document the new class-based and event-driven live page workflow yet. It’s experimental but working very well for me so far so I will do so shortly.)
³ When a person leaves a live/connected page (a page connected to its default web socket), we clean up and remove that live page from memory. However, browsers being what they are, cache the page on the client. If a person uses the back/forward buttons to return to the page, the browser will serve the cached source from memory, which has the old page ID, for the page that no longer exists in Kitten’s memory. So now we have a problem. The only way to recover from this is to tell the page to reload itself. So we accept the WebSocket connection, send a command to the page for it to reload itself, and then close the socket. That makes the stale page self heal by replacing itself with a fresh one. Yay, go us!
⁴ HTMX: https://htmx.org
⁵ Kitten Markdown pages reference: https://kitten.small-web.org/reference/#markdown-pages-page-md-files
⁶ See Session tutorial: https://kitten.small-web.org/tutorials/sessions/
Does anyone here have experience with the #azure cognitive services #api in the browser client? I'm getting an unexplainable #websocket error 1006 that's only happening to my user in certain circumstances, and the reason is `undefined`
I'm confident it's not a bad key, because the same code and deployment works for another user.
#boosts welcome, #help please! This is for a #FOSS accessibility project.
Websocket Echo en Java EE https://lineadecodigo.com/java/websocket-echo-en-java-ee/ por @victor_cuervo #java #javaee #jakarta #javascript #webapi #websocket
May I just say so myself that I‘m loving playing with Kitten¹ to build Domain² (shown below) and Place³.
¹ https://kitten.small-web.org
² https://codeberg.org/domain/app
³ https://codeberg.org/place/app