楚新元 | All in R

Welcome to R Square

利用 livecode 包在局域网实时分享代码

楚新元 / 2021-09-04


最近看到一个很有意思的 R 包 livecode,通过这个包可以把代码文件实时广播出去,有点共享屏幕的味道。你在自己电脑上选中或者修改某行代码等,接受广播的用户的设备上也会几乎实时看到相同的动作,这个包很适合老师向同学教学演示。本来这个包不限于局域网,但是因为在国内,bitly 网站无法注册,所以对于国内用户,这个包只能用于局域网了。

这个包使用也很简单,具体步骤如下:

if (!require(livecode)) {
  remotes::install_github("rundel/livecode")
}
serve_file("path/to/file")  # 引号内留空则默认为当前打开文件

运行完以上代码,R(RStudio)控制台会生成如下结果(示例):

✓ Started sharing 'xxxx.R' at 'http://xxx.xxx.x.xx:xxxxx'.
x The current ip address ('xxx.xxx.x.xx') for the server is private, only users on the same local network are likely to be able to connect.

同时自动打开一个网页,网页的地址就是上述 IP 地址,同时网页的右上角也会有地址提示。同一个局域网的用户(比如设备链接的是同一个Wi-Fi)就可以在自己设备上的浏览器里输入上述地址实时接受广播。

其实往浏览器里输入网址这个动作也挺多余的,我们只需要把这个网址生成二维码即可,这样大家手机扫描这个二维码即可自动跳转到这个网页。利用网址生成二维码的 R 包推荐使用 qrcode 包,操作也非常简单,也只需要一行代码,在我之前的博文中有介绍,详见:https://cxy.rbind.io/post/2021/08/28/r-skill/,在此不再赘述。