Tag: common lisp

将Node.js作为客户端连接到Common Lisp服务器

我已经在node.js的alpha阶段有了一个小型的但CPU很重的应用程序,这是一个小游戏。 我遇到了性能问题,我需要加速至less20倍才能达到testing版。 而且由于并行执行会使我走得很远,所以我决定好的开始将是在进程和线程之间共享游戏映射,以便对其执行并行操作。 这在节点上是不可能做到的,所以我决定在CL(SBCL + Linux)中编写肉感的部分,并通过unix域套接字连接到它。 计划是: [players] <-> (node.js front server) <-> (SBCL performing game ticks) 重点是,我需要在node.js和SBCL之间传递类似于socket.io的快速消息。 这是什么没有工作(你可以跳过这一部分) 在Node端,我不能使用纯socket.io,因为它不支持Unix域套接字,但net模块,所以我可以至less做socket.write('raw data') – 现在好没有比什么都好。 在CL方面,我试图运行woo web服务器(它支持本地套接字),我可以从节点连接到它并传递原始数据,但是所有不必要的HTTP部分都涉及到,并且woo始终作为服务器运行。 它正在等待GET / HTTP/1.1 …. 我没有find一个方法来首先从woo发起一个消息。 另外,它是完全没有logging和未注释的,并且涉及很多对C库的FF调用,这些我都不太熟悉。 所以我又经历了几个没有编译的CL Web服务器,不支持unix套接字,被放弃或者没有logging,最终转移到了纯sb-bsd-sockets,最后转到了iolib,但是我仍然无法弄清楚。 iolib看起来很有前途,但我无法从节点连接到它。 我有这个: (with-open-socket (socket :address-family :local :type :datagram ;; :connect :passive :local-filename "/tmp/socket") (format t "Socket created") ;; (listen-on socket) ;; (bind-address […]