'SciViews' - Socket Server

Implements a socket server allowing to connect clients to R.


= svSocket News

== Changes in svSocket 0.9-57

  • /testCLI directory moved to /inst/testCLI.

== Changes in svSocket 0.9-56

== Changes in svSocket 0.9-55

  • evalServer now can pass objects that contain pointers as attributes (e.g., data.table objects), but the pointers are set to NULL on the client side (they are probably meaningless there). This may result in corrupted or malfunctioning objects, unless they can cope with such a situation, like data.table object do.

  • Slightly reworked examples of ?evalServer and added a details section to explain which R objects cannot be transferred between R processes through evalServer().

== Changes in svSocket 0.9-54

  • An example is added to ?sendSocketClients.

  • It now needs svMisc >= 0.9-68, and it uses SciViews:TempEnv instead of TempEnv to store data from clients and servers (stateful conditions).

== Changes in svSocket 0.9-53

  • A bug in evalServer() leading to evaluation of a condition of length > 1 in a if() construct in some case is corrected. Thanks to Xiaoqian Jiang.

== Changes in svSocket 0.9-52

  • processSocket() now uses the new version of captureAll() from svMisc >= 0.9-62 with the split = and echo = arguments. Commands and results are now interwoven like in a normal console output.

  • The socket server now accepts and respond to 'HEAD' HTTP requests. It can process simple R commands in synchronous mode. This shoumld be reserved to sense if a R server is running on a port, and which one is it (socket or http) It is also used to change config parameters like options(width = ...) in a synchronous way before running 'more serious' code asynchronously.

  • Callback mechanisms used by the server now moved to svKomodo package, so that it can also be used by svHttp.

== Changes in svSocket 0.9-51

  • processSocket() no longer adds en empty line at the top of R commands (bug corrected).

== Changes in svSocket 0.9-50

  • processSocket() now calls parseText() from svMisc >= 0.9-60 instead of Parse().

  • When Echo is TRUE and we are not in hidden mode, results are echoed directly in the R console as they are available, and not any more at the end of the calculation.

  • A new type of connection is added: a 'sockclientconn' that allows to redirect output (append or write-only, for the moment) to a SciViews socket client. It is created by using socketClientConnection() and has a specific summary() method. It inherits from a 'sockconn' object and should behave similarly.

  • parSocket() has a new argument, clientsocket, that allows to pass the Tcl name of the client's socket. This is required to use socketClientConnection() by providing only the client's name (and thus, the required Tcl socket name is obtained through the property parSocket(....)$clientsocket, if it was previously recorded). The default process function, processSocket() is changed to record the Tcl socket in parSocket() each time a client connects to the server and sends its first command through it.

== Changes in svSocket 0.9-49

  • Small change in startSocketServer(): the Tcl/Tk callback function now calls a closure located in SciViews:TempEnv (SocketServerProc).

== Changes in svSocket 0.9-48

  • svTaskCallbackManager() added to allow callbacks to be executed after each (complete) R code send by a client to the server, as well as, any top-level task run at the R console.

== Changes in svSocket 0.9-47

  • The server now calls taskCallbacks on non-hidden mode after code evaluation

== Changes in svSocket 0.9-46

  • evalServer() slightly reworked

  • sendSocketServer() eliminated (superseeded by evalServer())

== Changes in svSocket 0.9-45

  • Bug correction in evalServer()

== Changes in svSocket 0.9-44

  • Added function evalServer() for R interprocess communication using this R socket server mechanism

== Changes in svSocket 0.9-43

  • Example added in processSocket(), implementing a simple REPL

  • A new function, sendSocketServer() is added to send and evaluate commands from one R instance (client) to another one (a R socket server)

== Changes in svSocket 0.9-43

  • Polishing package for CRAN submission

== Changes in svSocket 0.9-42

  • Made compatible with R 2.6.x (previous package was R >= 2.7.0).

== Changes in svSocket 0.9-41

  • Correction in startSocketServer(): the SocketServerProc function was not protected against garbage collection. Consequently, the socket server stopped working at unpredictable events.

  • Correction of a bug preventing processSocket() to display error messages. Instead, I got: Error in ngettext(1, "Error: ", domain = "R") : argument "msg2" is missing, with no default

== Changes in svSocket 0.9-40

This is the first version distributed on R-forge. It is completely refactored from older versions (on CRAN since 2003) to make it run with SciViews-K and Komodo Edit (Tinn-R is also supported, but not SciViews-R Console any more).

Reference manual

It appears you don't have a PDF plugin for this browser. You can click here to download the reference manual.


1.0.2 by Philippe Grosjean, 9 months ago

https://github.com/SciViews/svSocket, https://www.sciviews.org/svSocket/

Report a bug at https://github.com/SciViews/svSocket/issues

Browse source code at https://github.com/cran/svSocket

Authors: Philippe Grosjean [aut, cre] , Matthew Dowle [ctb]

Documentation:   PDF Manual  

GPL-2 license

Imports tcltk, svMisc, utils

Suggests svHttp, spelling, covr, knitr, rmarkdown

Suggested by svHttp, svKomodo.

See at CRAN