Comments (4)
For some reason, the link from above does not work. Here's a working one: https://github.com/nats-io/node-nats/blob/master/lib/nats.js#L990.
Btw, I'm having the same complaint.
from nats.js.
@glurg @mkozjak the request seems reasonable. However there are few subtle considerations. The node API is provides support for:
- Buffer
- string
- object (JSON)
The main issue is how are the types interpreted, and more importantly what happens when a non-node client receives the message.
By simply looking at JSON http://www.json.org from the javascript side, the following serializations are all valid JSON for purposes of decoding {}, [], "", number, true, false, null
. Currently node nats is only allowing object/array types to be encoded as JSON, as any other type is rejected with an exception. [JSON.parse() is actually quite unhappy about some of these values]
Out of the above, it would seem that null
is the proper default value if no value is provided to the publish call.
Before we do this, we'll have to see how other languages handle these values, because by specifying a format, we may also cause subtle issues on non-javascript clients that don't adhere correctly to deserialization/serialization (go unmarshaller can for example return nil). It will also create a possible situation for older node clients as some values not possible before would be.
from nats.js.
Did a bit more testing with the encoding. JSON.parse() was unhappy with some values that should have worked correctly. It had to do with the the quoting. IE. JSON.parse('""')
is happy for node, while JSON.parse("''")
is not.
from nats.js.
If values are not provided in request/reply or publish - the value is set to null
.
from nats.js.
Related Issues (20)
- How to open page with auth (port 8222) HOT 2
- Very slow message sending in 2.x.x (70 msg/sec instead of 30k msg/sec) HOT 17
- Create Stream - Nanos pointing to a wrong date HOT 1
- Error: consumer 'filter_subjects' requires server 2.10.0 HOT 1
- [JetStream] - ack dont deleting message HOT 1
- Pull-consumer stops pulling new messages after auto-reconnect HOT 4
- [JetStream] strange response for request method HOT 1
- delete
- How to pause a consumer? HOT 1
- Cloudflare Worker Compatibility/Integration HOT 19
- Statuses are not updated HOT 3
- Incorrect Stream Creation Targeting Hub Instead of Leaf Node HOT 1
- Support for Microservices HOT 5
- Client loosing connection consistently HOT 7
- Got error when call publish HOT 7
- Allow SkipHostLookup
- NatsError: TIMEOUT but message is published into stream HOT 5
- Can't update server address when reconnecting
- Setting headers only to true results in error HOT 2
- "http://::ffff:35.234.43.228" cannot be parsed as a URL. HOT 1
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 nats.js.