我没有亲自实现过,直观上想过去大概分两种一种是纯前端执行的JavaScript如果不考虑安全问题可以直接eval. 其他编程语言,理论上可以用JS实现一个简单的解释器,不过由于缺乏很多库,功能比较简陋另一种就是发给后端执行。
用HTTP request/response就可以做到,虽然效率比较低很多OJ都采用这种方法,提交的时候就把代码作为文本传给后端,后端执行以后再返回结果给前端用WebSocket的话可以实时传输,甚至还可以实现自动补全等功能。
当然对应的后端也会更加复杂多人对战这种基本上都是在后端执行的,比如Screeps这类游戏。没有研究过具体原理,盲猜后端应该是一些独立的进程,然后可以交换一些共享的数据。
亲爱的读者们,感谢您花时间阅读本文。如果您对本文有任何疑问或建议,请随时联系我。我非常乐意与您交流。
发表评论:
◎欢迎参与讨论,请在这里发表您的看法、交流您的观点。