虽然有些情况下两者可以互换使用,但你现在正在比较苹果和橙子。 Socket.io是一个JavaScript库,由两部分组成-客户端部分用于任何支持Web Sockets的浏览器,以及运行在NodeJS上的服务器端部分。它被用来构建实时Web应用程序,意味着你期望在客户端和服务器之间进行大量的来回通信(可能涉及多个客户端,例如聊天)。 ZeroMQ是一个网络库,用于构建分布式应用程序。它旨在运行于后端。其想法是使不同线程或进程之间的通信成为可能,无论是在单台计算机上还是在分布式网络上(这意味着它为不同目的使用不同的传输方式,并且可以无缝地进行转换)。它有很多流行编程语言的用法示例(PHP、Python、C++、C#、CL、Delphi、Erlang、F#、Felix、Haskell、Java、Objective-C、Ruby、Ada、Basic、Clojure、Go、Haxe、Node.js、ooc、Perl 和Scala),因此它没有与NodeJS或任何服务器框架捆绑在一起的限制。 You should read the first couple of pages of the respective docs: socket.io ZeroMQ guide
In short:
ZeroMQ不在浏览器内运行,也不一定与NodeJS或JavaScript绑定-它促进了不同“程序”之间的通信。Socket.io是用JS编写的,是浏览器脚本和npm包,用于在NodeJS服务器和客户端之间实现实时通信。