3 Commits

Author SHA1 Message Date
Joel Martin db6a7e3e28 Update to version 0.4.1
*** IMPORTANT NOTE ***

0.4.X is the last minor version to support the Hixie protocol. 0.5.0
will drop the Hixie protocol support. The latest released version of
all major browsers (and web-socket-js) support the IETF 6455 protocol.

- Other changes: add 'include/' sub-dir to source distribution and to
  installed packaged.
2013-03-12 13:46:45 -05:00
Joel Martin d9aedfe7d3 Update to version 0.4.0
*** IMPORTANT NOTE ***

This is the last minor version to support the Hixie protocol. I may do
bug fixes (e.g. 0.4.1) but 0.5.0 will drop the Hixie protocol support.
The latest released version of all major browsers (and web-socket-js)
support the IETF 6455 protocol.

- Other changes: updating TODO and release process notes.
2013-03-12 13:10:53 -05:00
Joel Martin 805026360e Use Buffer base64 support instead of pkrumins/node-base64 2013-02-19 13:12:10 -06:00
8 changed files with 47 additions and 24 deletions
+13
View File
@@ -1,6 +1,19 @@
Changes Changes
======= =======
0.4.1 - Mar 12, 2013
--------------------
* ***NOTE*** : 0.5.0 will drop Hixie protocol support
* add include/ directory and remove some dev files from source
distribution.
0.4.0 - Mar 12, 2013
--------------------
* ***NOTE*** : 0.5.0 will drop Hixie protocol support
* use Buffer base64 support in Node.js implementation
0.3.0 - Jan 15, 2013 0.3.0 - Jan 15, 2013
-------------------- --------------------
+1 -1
View File
@@ -1 +1 @@
include CHANGES.txt *.py README.md LICENSE.txt include CHANGES.txt websockify include README.md LICENSE.txt
+8 -7
View File
@@ -10,14 +10,15 @@ the target in both directions.
### WebSockets binary data ### WebSockets binary data
Websockify supports all versions of the WebSockets protocol (Hixie and Websockify 0.4.X supports all versions of the WebSockets protocol
HyBi). The older Hixie versions of the protocol only support UTF-8 (Hixie and HyBi). Starting with websockify 0.5.0, only the HyBi / IETF
text payloads. In order to transport binary data over UTF-8 an 6455 WebSocket protocol is supported.
encoding must used to encapsulate the data within UTF-8.
With Hixie clients, Websockify uses base64 to encode all traffic to The older Hixie versions of the protocol only support UTF-8 text
and from the client. This does not affect the data between websockify payloads. In order to transport binary data over UTF-8 an encoding
and the server. must used to encapsulate the data within UTF-8. With Hixie clients,
Websockify uses base64 to encode all traffic to and from the client.
This does not affect the data between websockify and the server.
With HyBi clients, websockify negotiates whether to base64 encode With HyBi clients, websockify negotiates whether to base64 encode
traffic to and from the client via the subprotocol header traffic to and from the client via the subprotocol header
+3 -6
View File
@@ -1,9 +1,6 @@
- Go implementation - Go implementation
- Rust implementation
- Support multiple targets that are selected by the path line. Some - Add sub-protocol support to upstream einaros/ws module and use that
sort of wildcarding of ports too. instead of the patched module.
- Support SSL targets too.
- wstelnet: support CSI L and CSI M - wstelnet: support CSI L and CSI M
+7
View File
@@ -15,3 +15,10 @@ Building web-socket-js emulator:
cd include/web-socket-js/flash-src cd include/web-socket-js/flash-src
mxmlc -static-link-runtime-shared-libraries WebSocketMain.as mxmlc -static-link-runtime-shared-libraries WebSocketMain.as
Building release tarball:
- not really necessary since tagged revision can be downloaded
from github as tarballs
git archive --format=tar --prefix=websockify-${WVER}/ v${WVER} > websockify-${WVER}.tar
gzip websockify-${WVER}.tar
-2
View File
@@ -4,8 +4,6 @@
git tag v${WVER} git tag v${WVER}
git push origin master git push origin master
git push origin v${WVER} git push origin v${WVER}
git archive --format=tar --prefix=websockify-${WVER}/ v${WVER} > websockify-${WVER}.tar
gzip websockify-${WVER}.tar
- Register with pypi.python.org (once): - Register with pypi.python.org (once):
python setup.py register python setup.py register
- Upload the source distribution to pypi - Upload the source distribution to pypi
+4 -5
View File
@@ -5,8 +5,8 @@
// Licensed under LGPL version 3 (see docs/LICENSE.LGPL-3) // Licensed under LGPL version 3 (see docs/LICENSE.LGPL-3)
// Known to work with node 0.8.9 // Known to work with node 0.8.9
// Requires node modules: ws, base64, optimist and policyfile // Requires node modules: ws, optimist and policyfile
// npm install ws base64 optimist policyfile // npm install ws optimist policyfile
// //
// NOTE: // NOTE:
// This version requires a patched version of einaros/ws that supports // This version requires a patched version of einaros/ws that supports
@@ -26,7 +26,6 @@ var argv = require('optimist').argv,
fs = require('fs'), fs = require('fs'),
policyfile = require('policyfile'), policyfile = require('policyfile'),
base64 = require('base64/build/Release/base64'),
Buffer = require('buffer').Buffer, Buffer = require('buffer').Buffer,
WebSocketServer = require('ws').Server, WebSocketServer = require('ws').Server,
@@ -51,7 +50,7 @@ new_client = function(client) {
//log("sending message: " + data); //log("sending message: " + data);
try { try {
if (client.protocol === 'base64') { if (client.protocol === 'base64') {
client.send(base64.encode(new Buffer(data))); client.send(new Buffer(data).toString('base64'));
} else { } else {
client.send(data,{binary: true}); client.send(data,{binary: true});
} }
@@ -67,7 +66,7 @@ new_client = function(client) {
client.on('message', function(msg) { client.on('message', function(msg) {
//log('got message: ' + msg); //log('got message: ' + msg);
if (client.protocol === 'base64') { if (client.protocol === 'base64') {
target.write(base64.decode(msg),'binary'); target.write(new Buffer(msg, 'base64'));
} else { } else {
target.write(msg,'binary'); target.write(msg,'binary');
} }
+9 -1
View File
@@ -1,6 +1,6 @@
from setuptools import setup, find_packages from setuptools import setup, find_packages
version = '0.3.0' version = '0.4.1'
name = 'websockify' name = 'websockify'
long_description = open("README.md").read() + "\n" + \ long_description = open("README.md").read() + "\n" + \
open("CHANGES.txt").read() + "\n" open("CHANGES.txt").read() + "\n"
@@ -12,6 +12,14 @@ setup(name=name,
classifiers=[ classifiers=[
"Programming Language :: Python", "Programming Language :: Python",
], ],
data_files=[('share/websockify/include',
['include/util.js',
'include/base64.js',
'include/websock.js']),
('share/websockify/include/web-socket-js',
['include/web-socket-js/WebSocketMain.swf',
'include/web-socket-js/swfobject.js',
'include/web-socket-js/web_socket.js'])],
keywords='noVNC websockify', keywords='noVNC websockify',
license='LGPLv3', license='LGPLv3',
url="https://github.com/kanaka/websockify", url="https://github.com/kanaka/websockify",