Establishing BaseFrame
This commit is contained in:
parent
494ecbb271
commit
e768c37e50
|
@ -36,6 +36,32 @@
|
|||
</execution>
|
||||
</executions>
|
||||
</plugin>
|
||||
<plugin>
|
||||
<groupId>org.apache.maven.plugins</groupId>
|
||||
<artifactId>maven-enforcer-plugin</artifactId>
|
||||
<version>1.1</version>
|
||||
<executions>
|
||||
<execution>
|
||||
<id>ban-java-servlet-api</id>
|
||||
<goals>
|
||||
<goal>enforce</goal>
|
||||
</goals>
|
||||
<configuration>
|
||||
<rules>
|
||||
<bannedDependencies>
|
||||
<includes>
|
||||
<include>javax.servlet</include>
|
||||
<include>servletapi</include>
|
||||
<include>org.eclipse.jetty.orbit:javax.servlet</include>
|
||||
<include>org.mortbay.jetty:servlet-api</include>
|
||||
<include>jetty:servlet-api</include>
|
||||
</includes>
|
||||
</bannedDependencies>
|
||||
</rules>
|
||||
</configuration>
|
||||
</execution>
|
||||
</executions>
|
||||
</plugin>
|
||||
</plugins>
|
||||
</build>
|
||||
</project>
|
||||
|
|
|
@ -34,6 +34,32 @@
|
|||
|
||||
<build>
|
||||
<plugins>
|
||||
<plugin>
|
||||
<groupId>org.apache.maven.plugins</groupId>
|
||||
<artifactId>maven-enforcer-plugin</artifactId>
|
||||
<version>1.1</version>
|
||||
<executions>
|
||||
<execution>
|
||||
<id>ban-java-servlet-api</id>
|
||||
<goals>
|
||||
<goal>enforce</goal>
|
||||
</goals>
|
||||
<configuration>
|
||||
<rules>
|
||||
<bannedDependencies>
|
||||
<includes>
|
||||
<include>javax.servlet</include>
|
||||
<include>servletapi</include>
|
||||
<include>org.eclipse.jetty.orbit:javax.servlet</include>
|
||||
<include>org.mortbay.jetty:servlet-api</include>
|
||||
<include>jetty:servlet-api</include>
|
||||
</includes>
|
||||
</bannedDependencies>
|
||||
</rules>
|
||||
</configuration>
|
||||
</execution>
|
||||
</executions>
|
||||
</plugin>
|
||||
<plugin>
|
||||
<groupId>org.apache.felix</groupId>
|
||||
<artifactId>maven-bundle-plugin</artifactId>
|
||||
|
|
|
@ -30,15 +30,13 @@ package org.eclipse.jetty.websocket;
|
|||
|
||||
import java.io.IOException;
|
||||
import java.io.UnsupportedEncodingException;
|
||||
import java.nio.ByteBuffer;
|
||||
import java.security.MessageDigest;
|
||||
import java.util.Collections;
|
||||
import java.util.List;
|
||||
|
||||
import org.eclipse.jetty.io.AbstractConnection;
|
||||
import org.eclipse.jetty.io.AsyncEndPoint;
|
||||
|
||||
import org.eclipse.jetty.io.ByteArrayBuffer;
|
||||
import org.eclipse.jetty.io.Connection;
|
||||
import org.eclipse.jetty.io.EndPoint;
|
||||
import org.eclipse.jetty.util.B64Code;
|
||||
import org.eclipse.jetty.util.StringUtil;
|
||||
|
@ -77,7 +75,7 @@ import org.eclipse.jetty.websocket.generator.MaskGen;
|
|||
* +---------------------------------------------------------------+
|
||||
* </pre>
|
||||
*/
|
||||
public class WebSocketConnectionRFC6455 extends AbstractConnection implements WebSocketConnection
|
||||
public class WebSocketConnectionRFC6455 /* extends AbstractConnection implements WebSocketConnection */
|
||||
{
|
||||
private static final Logger LOG = Log.getLogger(WebSocketConnectionRFC6455.class);
|
||||
|
||||
|
@ -277,8 +275,8 @@ public class WebSocketConnectionRFC6455 extends AbstractConnection implements We
|
|||
/* ------------------------------------------------------------ */
|
||||
public void onInputShutdown() throws IOException
|
||||
{
|
||||
if (!_closedIn)
|
||||
_endp.close();
|
||||
// if (!_closedIn)
|
||||
// _endp.close();
|
||||
}
|
||||
|
||||
/* ------------------------------------------------------------ */
|
||||
|
@ -288,7 +286,6 @@ public class WebSocketConnectionRFC6455 extends AbstractConnection implements We
|
|||
}
|
||||
|
||||
/* ------------------------------------------------------------ */
|
||||
@Override
|
||||
public void onIdleExpired(long idleForMs)
|
||||
{
|
||||
closeOut(WebSocketConnectionRFC6455.CLOSE_NORMAL,"Idle for "+idleForMs+"ms > "+_endp.getMaxIdleTime()+"ms");
|
||||
|
@ -418,10 +415,10 @@ public class WebSocketConnectionRFC6455 extends AbstractConnection implements We
|
|||
/* ------------------------------------------------------------ */
|
||||
private void checkWriteable()
|
||||
{
|
||||
if (!_outbound.isBufferEmpty() && _endp instanceof AsyncEndPoint)
|
||||
{
|
||||
((AsyncEndPoint)_endp).scheduleWrite();
|
||||
}
|
||||
// if (!_outbound.isBufferEmpty() && _endp instanceof AsyncEndPoint)
|
||||
// {
|
||||
// ((AsyncEndPoint)_endp).scheduleWrite();
|
||||
// }
|
||||
}
|
||||
|
||||
protected void onFrameHandshake()
|
||||
|
@ -489,7 +486,7 @@ public class WebSocketConnectionRFC6455 extends AbstractConnection implements We
|
|||
/* ------------------------------------------------------------ */
|
||||
public boolean isOpen()
|
||||
{
|
||||
return _endp!=null&&_endp.isOpen();
|
||||
// return _endp!=null&&_endp.isOpen();
|
||||
}
|
||||
|
||||
/* ------------------------------------------------------------ */
|
||||
|
@ -504,14 +501,14 @@ public class WebSocketConnectionRFC6455 extends AbstractConnection implements We
|
|||
/* ------------------------------------------------------------ */
|
||||
public void setMaxIdleTime(int ms)
|
||||
{
|
||||
try
|
||||
{
|
||||
_endp.setMaxIdleTime(ms);
|
||||
}
|
||||
catch(IOException e)
|
||||
{
|
||||
LOG.warn(e);
|
||||
}
|
||||
// try
|
||||
// {
|
||||
// _endp.setMaxIdleTime(ms);
|
||||
// }
|
||||
// catch(IOException e)
|
||||
// {
|
||||
// LOG.warn(e);
|
||||
// }
|
||||
}
|
||||
|
||||
/* ------------------------------------------------------------ */
|
||||
|
@ -529,7 +526,7 @@ public class WebSocketConnectionRFC6455 extends AbstractConnection implements We
|
|||
/* ------------------------------------------------------------ */
|
||||
public int getMaxIdleTime()
|
||||
{
|
||||
return _endp.getMaxIdleTime();
|
||||
// return _endp.getMaxIdleTime();
|
||||
}
|
||||
|
||||
/* ------------------------------------------------------------ */
|
||||
|
@ -644,13 +641,13 @@ public class WebSocketConnectionRFC6455 extends AbstractConnection implements We
|
|||
@Override
|
||||
public String toString()
|
||||
{
|
||||
return String.format("%s@%x l(%s:%d)<->r(%s:%d)",
|
||||
getClass().getSimpleName(),
|
||||
hashCode(),
|
||||
_endp.getLocalAddr(),
|
||||
_endp.getLocalPort(),
|
||||
_endp.getRemoteAddr(),
|
||||
_endp.getRemotePort());
|
||||
// return String.format("%s@%x l(%s:%d)<->r(%s:%d)",
|
||||
// getClass().getSimpleName(),
|
||||
// hashCode(),
|
||||
// _endp.getLocalAddr(),
|
||||
// _endp.getLocalPort(),
|
||||
// _endp.getRemoteAddr(),
|
||||
// _endp.getRemotePort());
|
||||
}
|
||||
}
|
||||
|
||||
|
|
|
@ -16,15 +16,13 @@
|
|||
package org.eclipse.jetty.websocket.extensions;
|
||||
|
||||
import java.io.IOException;
|
||||
import java.nio.ByteBuffer;
|
||||
import java.util.HashMap;
|
||||
import java.util.Map;
|
||||
|
||||
|
||||
import org.eclipse.jetty.util.QuotedStringTokenizer;
|
||||
import org.eclipse.jetty.websocket.WebSocket;
|
||||
import org.eclipse.jetty.websocket.WebSocketGenerator;
|
||||
import org.eclipse.jetty.websocket.WebSocketParser;
|
||||
import org.eclipse.jetty.websocket.WebSocket.FrameConnection;
|
||||
import org.eclipse.jetty.websocket.WebSocketParser.FrameHandler;
|
||||
|
||||
public class AbstractExtension implements Extension
|
||||
|
|
|
@ -16,13 +16,12 @@
|
|||
package org.eclipse.jetty.websocket.extensions.deflate;
|
||||
|
||||
import java.io.IOException;
|
||||
import java.nio.ByteBuffer;
|
||||
import java.util.Map;
|
||||
import java.util.zip.DataFormatException;
|
||||
import java.util.zip.Deflater;
|
||||
import java.util.zip.Inflater;
|
||||
|
||||
|
||||
import org.eclipse.jetty.io.ByteArrayBuffer;
|
||||
import org.eclipse.jetty.util.log.Log;
|
||||
import org.eclipse.jetty.util.log.Logger;
|
||||
import org.eclipse.jetty.websocket.WebSocketConnectionRFC6455;
|
||||
|
@ -67,6 +66,7 @@ public class DeflateFrameExtension extends AbstractExtension
|
|||
@Override
|
||||
public void onFrame(byte flags, byte opcode, ByteBuffer buffer)
|
||||
{
|
||||
/* TODO: Migrate to new Jetty9 IO
|
||||
if (getConnection().isControl(opcode) || !isFlag(flags,1))
|
||||
{
|
||||
super.onFrame(flags,opcode,buffer);
|
||||
|
@ -106,6 +106,7 @@ public class DeflateFrameExtension extends AbstractExtension
|
|||
LOG.warn(e);
|
||||
getConnection().close(WebSocketConnectionRFC6455.CLOSE_BAD_PAYLOAD,e.toString());
|
||||
}
|
||||
*/
|
||||
}
|
||||
|
||||
/* (non-Javadoc)
|
||||
|
|
|
@ -0,0 +1,36 @@
|
|||
package org.eclipse.jetty.websocket.frames;
|
||||
|
||||
/**
|
||||
* A Base Frame as seen in <a href="https://tools.ietf.org/html/rfc6455#section-5.2">RFC 6455. Sec 5.2</a>
|
||||
*
|
||||
* <pre>
|
||||
* 0 1 2 3
|
||||
* 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1
|
||||
* +-+-+-+-+-------+-+-------------+-------------------------------+
|
||||
* |F|R|R|R| opcode|M| Payload len | Extended payload length |
|
||||
* |I|S|S|S| (4) |A| (7) | (16/64) |
|
||||
* |N|V|V|V| |S| | (if payload len==126/127) |
|
||||
* | |1|2|3| |K| | |
|
||||
* +-+-+-+-+-------+-+-------------+ - - - - - - - - - - - - - - - +
|
||||
* | Extended payload length continued, if payload len == 127 |
|
||||
* + - - - - - - - - - - - - - - - +-------------------------------+
|
||||
* | |Masking-key, if MASK set to 1 |
|
||||
* +-------------------------------+-------------------------------+
|
||||
* | Masking-key (continued) | Payload Data |
|
||||
* +-------------------------------- - - - - - - - - - - - - - - - +
|
||||
* : Payload Data continued ... :
|
||||
* + - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - +
|
||||
* | Payload Data continued ... |
|
||||
* +---------------------------------------------------------------+
|
||||
* </pre>
|
||||
*/
|
||||
public class BaseFrame {
|
||||
private boolean fin;
|
||||
private boolean rsv1;
|
||||
private boolean rsv2;
|
||||
private boolean rsv3;
|
||||
private byte opcode = -1;
|
||||
private boolean mask = false;
|
||||
private long payloadLength;
|
||||
private byte maskingKey[];
|
||||
}
|
|
@ -1,5 +1,29 @@
|
|||
package org.eclipse.jetty.websocket.generator;
|
||||
|
||||
/**
|
||||
* Generating a frame in WebSocket land.
|
||||
*
|
||||
* <pre>
|
||||
* 0 1 2 3
|
||||
* 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1
|
||||
* +-+-+-+-+-------+-+-------------+-------------------------------+
|
||||
* |F|R|R|R| opcode|M| Payload len | Extended payload length |
|
||||
* |I|S|S|S| (4) |A| (7) | (16/64) |
|
||||
* |N|V|V|V| |S| | (if payload len==126/127) |
|
||||
* | |1|2|3| |K| | |
|
||||
* +-+-+-+-+-------+-+-------------+ - - - - - - - - - - - - - - - +
|
||||
* | Extended payload length continued, if payload len == 127 |
|
||||
* + - - - - - - - - - - - - - - - +-------------------------------+
|
||||
* | |Masking-key, if MASK set to 1 |
|
||||
* +-------------------------------+-------------------------------+
|
||||
* | Masking-key (continued) | Payload Data |
|
||||
* +-------------------------------- - - - - - - - - - - - - - - - +
|
||||
* : Payload Data continued ... :
|
||||
* + - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - +
|
||||
* | Payload Data continued ... |
|
||||
* +---------------------------------------------------------------+
|
||||
* </pre>
|
||||
*/
|
||||
public class Generator {
|
||||
|
||||
}
|
||||
|
|
|
@ -1,5 +1,29 @@
|
|||
package org.eclipse.jetty.websocket.parser;
|
||||
|
||||
/**
|
||||
* Parsing of a frame in WebSocket land.
|
||||
*
|
||||
* <pre>
|
||||
* 0 1 2 3
|
||||
* 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1
|
||||
* +-+-+-+-+-------+-+-------------+-------------------------------+
|
||||
* |F|R|R|R| opcode|M| Payload len | Extended payload length |
|
||||
* |I|S|S|S| (4) |A| (7) | (16/64) |
|
||||
* |N|V|V|V| |S| | (if payload len==126/127) |
|
||||
* | |1|2|3| |K| | |
|
||||
* +-+-+-+-+-------+-+-------------+ - - - - - - - - - - - - - - - +
|
||||
* | Extended payload length continued, if payload len == 127 |
|
||||
* + - - - - - - - - - - - - - - - +-------------------------------+
|
||||
* | |Masking-key, if MASK set to 1 |
|
||||
* +-------------------------------+-------------------------------+
|
||||
* | Masking-key (continued) | Payload Data |
|
||||
* +-------------------------------- - - - - - - - - - - - - - - - +
|
||||
* : Payload Data continued ... :
|
||||
* + - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - +
|
||||
* | Payload Data continued ... |
|
||||
* +---------------------------------------------------------------+
|
||||
* </pre>
|
||||
*/
|
||||
public class Parser {
|
||||
|
||||
}
|
||||
|
|
Loading…
Reference in New Issue