Skip to content

Commit

Permalink
Reintroduced changes from @steven-smpct PR #33
Browse files Browse the repository at this point in the history
Added same protocol to WebSocketListener.
  • Loading branch information
TVolden committed Apr 7, 2018
1 parent cd76bdd commit 357b7ce
Show file tree
Hide file tree
Showing 5 changed files with 20 additions and 82 deletions.
2 changes: 1 addition & 1 deletion ocpp-v1_6/pom.xml
Original file line number Diff line number Diff line change
Expand Up @@ -49,7 +49,7 @@
<dependency>
<groupId>org.java-websocket</groupId>
<artifactId>Java-WebSocket</artifactId>
<version>1.3.7</version>
<version>1.3.8</version>
</dependency>
<dependency>
<groupId>junit</groupId>
Expand Down
2 changes: 1 addition & 1 deletion ocpp-v1_6/src/main/java/eu/chargetime/ocpp/JSONClient.java
Original file line number Diff line number Diff line change
Expand Up @@ -58,7 +58,7 @@ public JSONClient(ClientCoreProfile coreProfile) {
*/
public JSONClient(ClientCoreProfile coreProfile, String identity) {
this.identity = identity;
transmitter = new WebSocketTransmitter(new OcppDraft());
transmitter = new WebSocketTransmitter();
JSONCommunicator communicator = new JSONCommunicator(transmitter);
AsyncPromiseFulfilerDecorator promiseFulfiler = new AsyncPromiseFulfilerDecorator(new SimplePromiseFulfiller());
featureRepository = new FeatureRepository();
Expand Down
69 changes: 0 additions & 69 deletions ocpp-v1_6/src/main/java/eu/chargetime/ocpp/OcppDraft.java

This file was deleted.

Original file line number Diff line number Diff line change
Expand Up @@ -30,34 +30,36 @@ of this software and associated documentation files (the "Software"), to deal
import org.apache.logging.log4j.Logger;
import org.java_websocket.WebSocket;
import org.java_websocket.drafts.Draft;
import org.java_websocket.drafts.Draft_6455;
import org.java_websocket.extensions.IExtension;
import org.java_websocket.handshake.ClientHandshake;
import org.java_websocket.protocols.IProtocol;
import org.java_websocket.protocols.Protocol;
import org.java_websocket.server.DefaultSSLWebSocketServerFactory;
import org.java_websocket.server.WebSocketServer;

import javax.net.ssl.SSLContext;
import java.net.InetSocketAddress;
import java.util.Arrays;
import java.util.Collections;
import java.util.HashMap;
import java.util.List;

public class WebSocketListener implements Listener {
private static final Logger logger = LogManager.getLogger(WebSocketListener.class);
private final IServerSessionFactory sessionFactory;
private final List<Draft> drafts;

private WebSocketServer server;
private HashMap<WebSocket, WebSocketReceiver> sockets;
private boolean handleRequestAsync;

public WebSocketListener(IServerSessionFactory sessionFactory, Draft... drafts) {
public WebSocketListener(IServerSessionFactory sessionFactory) {
this.sessionFactory = sessionFactory;
this.drafts = Arrays.asList(drafts);
this.sockets = new HashMap<>();
}

@Override
public void open(String hostname, int port, ListenerEvents handler) {
server = new WebSocketServer(new InetSocketAddress(hostname, port), drafts) {
Draft_6455 draft = new Draft_6455(Collections.<IExtension>emptyList(), Collections.<IProtocol>singletonList(new Protocol("ocpp1.6")));
server = new WebSocketServer(new InetSocketAddress(hostname, port), Collections.<Draft>singletonList(draft)) {
@Override
public void onOpen(WebSocket webSocket, ClientHandshake clientHandshake) {
WebSocketReceiver receiver = new WebSocketReceiver(message -> webSocket.send(message));
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -30,32 +30,35 @@ of this software and associated documentation files (the "Software"), to deal
import org.apache.logging.log4j.LogManager;
import org.apache.logging.log4j.Logger;
import org.java_websocket.client.WebSocketClient;
import org.java_websocket.drafts.Draft;
import org.java_websocket.drafts.Draft_6455;
import org.java_websocket.exceptions.WebsocketNotConnectedException;
import org.java_websocket.extensions.IExtension;
import org.java_websocket.handshake.ServerHandshake;
import org.java_websocket.protocols.IProtocol;
import org.java_websocket.protocols.Protocol;

import javax.net.ssl.SSLContext;
import javax.net.ssl.SSLSocketFactory;
import java.io.IOException;
import java.net.ConnectException;
import java.net.URI;
import java.util.Collections;

/**
* Web Socket implementation of the Transmitter.
*/
public class WebSocketTransmitter implements Transmitter
{
private static final Logger logger = LogManager.getLogger(WebSocketTransmitter.class);
private final Draft draft;

private WebSocketClient client;

public WebSocketTransmitter(Draft draft) {
this.draft = draft;
public WebSocketTransmitter() {
}

@Override
public void connect(String uri, RadioEvents events) {

Draft_6455 draft = new Draft_6455(Collections.<IExtension>emptyList(), Collections.<IProtocol>singletonList(new Protocol("ocpp1.6")));
client = new WebSocketClient(URI.create(uri), draft) {
@Override
public void onOpen(ServerHandshake serverHandshake)
Expand All @@ -72,6 +75,7 @@ public void onMessage(String s)
@Override
public void onClose(int i, String s, boolean b)
{
logger.debug("WebSocketClient.onClose: code = " + i + ", message = " + s + ", host closed = " + b);
events.disconnected();
}

Expand Down Expand Up @@ -109,6 +113,7 @@ public void disconnect()

@Override
public void send(Object request) throws NotConnectedException {
logger.debug("Sending: " + request);
try {
client.send(request.toString());
} catch (WebsocketNotConnectedException ex) {
Expand Down

0 comments on commit 357b7ce

Please sign in to comment.