如何在Node.js npm服务器上查看socket.io版本

7
我想确认一下,如果我升级到socket.io 0.7,我的当前应用程序在这个服务器上是否不起作用?如果我升级了。
为此,我想查看我的当前socket.io版本,我该怎么做?
另一方面,我想选择node的稳定版本,目前我们有v0.5.0预发布版,想要使用与socket.io兼容的稳定版本。我在stackoverflow的一个问题中读到了这个信息,但找不到那个问题,正在寻找适用于socket.io的稳定版本,
如果是这样,它会影响我的当前运行应用程序吗?如果是,则应在其他服务器上进行升级。
3个回答

10

我想知道当前使用的socket.io版本,应该怎么做?

打开node.js交互模式,只需键入node。接着输入require('socket.io')。这样你就能看到很多信息了。如果你只是想知道版本号,可以输入require('socket.io').version

alfred@alfred-laptop:~/node/contact$ node
> require('socket.io');
{ version: '0.7.6',
  protocol: 1,
  clientVersion: '0.7.3',
  listen: [Function],
  Manager: 
   { [Function: Manager]
     defaultTransports: 
      [ 'websocket',
        'htmlfile',
        'xhr-polling',
        'jsonp-polling' ],
     static: { cache: {}, paths: [Object], mime: [Object] } },
  Transport: [Function: Transport],
  Socket: [Function: Socket],
  Store: { [Function: Store] Client: [Function] },
  MemoryStore: { [Function: Memory] Client: [Function: Client] },
  RedisStore: { [Function: Redis] Client: [Function: Client] },
  parser: 
   { packets: 
      [ 'disconnect',
        'connect',
        'heartbeat',
        'message',
        'json',
        'event',
        'ack',
        'error',
        'noop' ],
     reasons: 
      [ 'transport not supported',
        'client not handshaken',
        'unauthorized' ],
     advice: [ 'reconnect' ],
     encodePacket: [Function],
     encodePayload: [Function],
     decodePacket: [Function],
     decodePayload: [Function] } }

require('socket.io').version '0.7.6'

同时,我想要使用Node.js的稳定版本,当前我们有v0.5.0 pre版本,但想要使用适用于socket.io的稳定版本。我曾在stackoverflow上看到过相关问题,但现在找不到了,请问应该使用哪个稳定版本?

如果升级的话,这会对我正在运行的应用程序产生影响吗?如果会,那么我是否应该在其他服务器上进行升级?

Node.js是自包含的可执行文件,您可以安装多个版本的Node而不会遇到任何问题。您可以查看nvmnave,以帮助您管理多个版本的Node.js。这样,您就可以在不同的Node.js / npm版本中运行不同的应用程序,而无需麻烦。

例如,默认情况下,node.js正在运行node v0.4.9版本。

alfred@alfred-laptop:~/node/contact$ nvm ls
v0.1.100  v0.1.16  v0.1.23  v0.1.30  v0.1.93  v0.2.0  v0.3.0  v0.3.7  v0.4.4
v0.1.101  v0.1.17  v0.1.24  v0.1.31  v0.1.94  v0.2.1  v0.3.1  v0.3.8  v0.4.5
v0.1.102  v0.1.18  v0.1.25  v0.1.32  v0.1.95  v0.2.2  v0.3.2  v0.4    v0.4.6
v0.1.103  v0.1.19  v0.1.26  v0.1.33  v0.1.96  v0.2.3  v0.3.3  v0.4.0  v0.4.7
v0.1.104  v0.1.20  v0.1.27  v0.1.90  v0.1.97  v0.2.4  v0.3.4  v0.4.1  v0.4.8
v0.1.14   v0.1.21  v0.1.28  v0.1.91  v0.1.98  v0.2.5  v0.3.5  v0.4.2  v0.4.8-rc
v0.1.15   v0.1.22  v0.1.29  v0.1.92  v0.1.99  v0.2.6  v0.3.6  v0.4.3  v0.4.9
stable:     v0.4.9
latest:     v0.4.9
current:    v0.4.9
default -> v0.4.9
# use 'nvm sync' to update from nodejs.org

alfred@alfred-laptop:~/node/contact$ node -v
v0.4.9

我只需输入 nvm use v0.4.8 来更改版本,这个版本我已经安装好了。

alfred@alfred-laptop:~/node/contact$ nvm use v0.4.8
Now using node v0.4.8
alfred@alfred-laptop:~/node/contact$ node -v
v0.4.8

没有像 nvm 那样的工具适用于 socket.io。因为我想升级 socket.io,而不影响我的当前运行的应用程序。那么我该如何更改 socket.io 的版本呢? - XMen
当应用程序在nvm的某个版本上运行时,它会持续运行。只需打开另一个希望使用的node.js版本的第二个bash会话即可。这在使用nvm时非常容易实现。 - Alfred
我只得到了“未定义”。 - Nodeocrat

6

以上答案现在不适用于最近版本的Socket.io库。请查看下面的链接,以获取有关获取socket.io版本的最新答案:

require('socket.io/package').version;

Socket.IO Version Output


6

要查找当前版本,只需在命令行中执行npm list socket.io即可。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接