Comments (6)
Hi @cyrilfr
First of all thanks for the question. It been quite around here lately.
When I started out, one of my goals was to decouple the 3rd party implementation of communication. I can't say I succeeded with that, because some have tried to integrate with other Liv's and failed. It really depends on how the implementation is done.
I can try to check out the lib and give you some feedback during the weekend or so.
from java-oca-ocpp.
It looks possible, but I have some concerns.
- I can't see which draft of websocket they use, which can cause compatibility problems.
- I'm not sure if wss is supported.
from java-oca-ocpp.
Hi @cyrilfr
First of all thanks for the question. It been quite around here lately.
When I started out, one of my goals was to decouple the 3rd party implementation of communication. I can't say I succeeded with that, because some have tried to integrate with other Liv's and failed. It really depends on how the implementation is done.
I can try to check out the lib and give you some feedback during the weekend or so.
That would be great thanks :)
from java-oca-ocpp.
Play Framework uses Akka as HTTP and WebSocket implementation.
Personally, I use this kind of code:
public WebSocket socket()
{
return WebSocket.Json.accept(request ->
{
// Just ignore the input
Sink<JsonNode, ?> in = Sink.ignore();
// Send a single 'Hello!' message and close
JsonNode message = Json.newObject();
message.put("foo", "Hello!");
Source<JsonNode, ?> out = Source.single(message);
return Flow.fromSinkAndSource(in, out);
});
}
WSS is fully supported. Personally, I prefer to use NGINX as a proxy for WSS.
Maybe the library should be "WebSocket implementation independant" and work with callbacks. So you can invoke the OCPP communicator with any WebSocket.
To receive a message with Play for example:
public WebSocket socket()
{
return WebSocket.Json.accept(request ->
{
Sink<JsonNode, ?> sink = Sink.foreach(message ->
{
// parse the JSON message here to get the OCPP-J request and payload
});
Source<JsonNode, ?> source = Source.<JsonNode>actorRef(256, OverflowStrategy.dropHead())
.mapMaterializedValue(actorRef ->
{
// save the actorRef to send message here
return actorRef;
})
.watchTermination((actorRef, termination) ->
{
termination.whenComplete((done, cause) ->
{
// remove the actorRef here
});
return NotUsed.getInstance();
});
return Flow.fromSinkAndSource(sink, source);
});
}
To send a message with an instance of ActorRef
:
JsonNode message = Json.newObject();
// create a JSON message with OCCP-J request and payload
actorRef.tell(message, ActorRef.noSender());
To close the connection:
actorRef.tell(PoisonPill.getInstance(), ActorRef.noSender());
from java-oca-ocpp.
I'm still interested in using OCA OCPP as a standalone library (not WS or framework integration specific).
Do you have any news about it? How could I help?
from java-oca-ocpp.
Hi @cyrilfr
It's nice that you are still interested, unfortunately I don't have any news for you.
I don't have much time to spare, so I havent worked on the lib for some time now, and I don't think I will for years to come.
The case is, that I'm partaking on a masters degree this week, so I reckon I will be very busi for the next two years.
If you want to give it a try, then I'll surely assist you, anyway possible. I just don't have a lot of spare time.
Sincerely,
Thomas Volden
from java-oca-ocpp.
Related Issues (20)
- Renaming namespace for ocpp2 classes to allow usage of both Clients in the same project HOT 2
- Information about percentage of charging for current car HOT 1
- How to use authenticateSession? HOT 4
- MeterValueRequest validation not checking that metervalues and sampled values have at least 1 element HOT 1
- Decide on build system (Gradle vs Maven)
- I want to delete the queue when the response times out.
- No main manifest attribute HOT 2
- How to obtain raw data reported by a charge point? HOT 1
- Basic auth not working - sending null byte array for password field HOT 2
- OCPP server and client doesn't include all atributes (GARO EVCS example) HOT 3
- Authorizekey allows too few characters HOT 2
- Is there any documentation for OCPP-2.0.1 HOT 4
- Server not work with a real charge point HOT 7
- how to implement ReserveNowRequest with OCPP v1.6J HOT 4
- Is MeterStop value the total charged during 1 session or the total since the meter has been installed? HOT 1
- problems handling asynchronous confirmations HOT 1
- StartTransaction - Unknown message type - why? BootNotificationRequest and AuthorizeRequest are working HOT 1
- How can I start implementation of OCCP-2.0.1
- How to install the library manually
- How to send the CALLERROR message from server to client in handleStatusNotificationRequest() function
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 java-oca-ocpp.