libreoffice-online/loolwsd
Tor Lillqvist 1b0230e4df Intermediate commit of start on transporting sockets to child process
Will be needed if we want loolwsd to run on Windows. Then we will have one
process receiving the connections from WebSocket clients and sending the
accepted connection sockets to child processes thatr might be already running,
either because they have been "pre-forked", or because of a collaboration
scenario where new clients join a session working on a document.

But initially we will write this as if for Unix only, so development of this
migratory socket stuff is paused for now. (And it isn't even clear whether the
API design so far is a good idea and elegantly implementable.)
2015-03-16 12:30:56 +02:00
..
.gitignore Autofooize 2015-03-09 11:19:00 +02:00
AUTHORS Autofooize 2015-03-09 11:19:00 +02:00
ChangeLog Autofooize 2015-03-09 11:19:00 +02:00
configure.ac Use -Wall -Werror 2015-03-13 11:29:55 +02:00
COPYING Autofooize 2015-03-09 11:19:00 +02:00
INSTALL Autofooize 2015-03-09 11:19:00 +02:00
LOOLSession.cpp Cache also document status 2015-03-13 14:17:51 +02:00
LOOLSession.hpp Further hacking on tile cache 2015-03-13 01:34:42 +02:00
LOOLWSD.cpp Further hacking on tile cache 2015-03-13 01:34:42 +02:00
Makefile.am Intermediate commit of start on transporting sockets to child process 2015-03-16 12:30:56 +02:00
MigratorySocket.cpp Intermediate commit of start on transporting sockets to child process 2015-03-16 12:30:56 +02:00
MigratorySocket.hpp Intermediate commit of start on transporting sockets to child process 2015-03-16 12:30:56 +02:00
MigratorySocketTransport.cpp Intermediate commit of start on transporting sockets to child process 2015-03-16 12:30:56 +02:00
MigratorySocketTransport.hpp Intermediate commit of start on transporting sockets to child process 2015-03-16 12:30:56 +02:00
NEWS Autofooize 2015-03-09 11:19:00 +02:00
protocol.txt Incorporate LOK_CALLBACK_* generically 2015-03-13 11:30:45 +02:00
README We have a "proper" autofooized Unix build now 2015-03-09 11:30:56 +02:00
socketpair.c Intermediate commit of start on transporting sockets to child process 2015-03-16 12:30:56 +02:00
SocketTransportTest.cpp Intermediate commit of start on transporting sockets to child process 2015-03-16 12:30:56 +02:00
TileCache.cpp Cache also document status 2015-03-13 14:17:51 +02:00
TileCache.hpp Cache also document status 2015-03-13 14:17:51 +02:00

LibreOffice On-Line WebSocket server

See protocol.txt for a description of the protocol to be used over the
websocket.

Uses libpng and the Poco library, from
http://pocoproject.org/index.html. Build it with ./configure
--prefix=/opt/poco && make install. Probably is available packaged in
some distros

At least I like the Poco library. But if it is not acceptable for some
reason, please scream quickly, before too much code that uses Poco has
been written... I found Poco while looking for code to do the
WebSocket handshake and marshalling. But that functionality is just a
small part of what Poco does.

This uses autofoo now: autoreconf, run ./configure with appropriate
--with-lokit-path, --with-poco-includes and --with-poco-libs options,
make.

For Windows, a proper VS2013 project is needed.

For now this is intentionally just serving one client once. (This is
what the SOW says we should do first. See SOW for the directions of
further work.)

Also there is unconditional debugging output etc.

Run loolwsd for instance like this to test:

(echo load foo.odt; echo tile width=500 height=500 tileposx=0 tileposy=0 tilewidth=10000 tileheight=10000) | ./loolwsd --lopath=<path-to-lo-builddir>/instdir/program --test

The handling of termination is a bit fragile, occasionally it dumps
core somewhere in LO code when quitting. Don't be scared.

Set the DUMPPNG env var and the code dumps PNGs sent for each tile requests to a FOO<n>.png.