1b0230e4df
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.) |
||
---|---|---|
.. | ||
.gitignore | ||
AUTHORS | ||
ChangeLog | ||
configure.ac | ||
COPYING | ||
INSTALL | ||
LOOLSession.cpp | ||
LOOLSession.hpp | ||
LOOLWSD.cpp | ||
Makefile.am | ||
MigratorySocket.cpp | ||
MigratorySocket.hpp | ||
MigratorySocketTransport.cpp | ||
MigratorySocketTransport.hpp | ||
NEWS | ||
protocol.txt | ||
README | ||
socketpair.c | ||
SocketTransportTest.cpp | ||
TileCache.cpp | ||
TileCache.hpp |
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.