【问题标题】:How to use socket.io in node?如何在节点中使用 socket.io?
【发布时间】:2017-08-10 18:12:10
【问题描述】:

我学习节点,我有 socket.io 的例子。

在 package.json 我有:

{
  "name": "test",
  "version": "0.0.1",
  "description": "test",
  "dependencies": {
    "mime": "~1.2.7",
    "socket.io": "*"
  }
}

我愿意:

npm install

我收到:

+-- mime@1.2.11
`-- socket.io@1.7.3
  +-- debug@2.3.3
  | `-- ms@0.7.2
  +-- engine.io@1.8.3
  | +-- accepts@1.3.3
  | | +-- mime-types@2.1.14
  | | | `-- mime-db@1.26.0
  | | `-- negotiator@0.6.1
  | +-- base64id@1.0.0
  | +-- cookie@0.3.1
  | +-- engine.io-parser@1.3.2
  | | +-- after@0.8.2
  | | +-- arraybuffer.slice@0.0.6
  | | +-- base64-arraybuffer@0.1.5
  | | +-- blob@0.0.4
  | | `-- wtf-8@1.0.0
  | `-- ws@1.1.2
  |   +-- options@0.0.6
  |   `-- ultron@1.0.2
  +-- has-binary@0.1.7
  | `-- isarray@0.0.1
  +-- object-assign@4.1.0
  +-- socket.io-adapter@0.5.0
  +-- socket.io-client@1.7.3
  | +-- backo2@1.0.2
  | +-- component-bind@1.0.0
  | +-- component-emitter@1.2.1
  | +-- engine.io-client@1.8.3
  | | +-- component-emitter@1.2.1
  | | +-- component-inherit@0.0.3
  | | +-- has-cors@1.1.0
  | | +-- parsejson@0.0.3
  | | +-- parseqs@0.0.5
  | | +-- xmlhttprequest-ssl@1.5.3
  | | `-- yeast@0.1.2
  | +-- indexof@0.0.1
  | +-- object-component@0.0.3
  | +-- parseuri@0.0.5
  | | `-- better-assert@1.0.2
  | |   `-- callsite@1.0.0
  | `-- to-array@0.1.4
  `-- socket.io-parser@2.3.1
    +-- component-emitter@1.1.2
    +-- debug@2.2.0
    | `-- ms@0.7.1
    `-- json3@3.3.2

所以没有错误。

在 html 中我使用(如示例):

<script src='/socket.io/socket.io.js' type='text/javascript'></script>

但在控制台我有错误:

"NetworkError: 404 Not Found - http://localhost:3000/socket.io/socket.io.js"

在文件夹 node_modules 我有结构:

node_modules
--- socket.io
------ lib
--------- client.js
--------- index.js
--------- namespace.js
--------- socket.js

我也尝试了其他路径:

/socket.io/lib/socket.js /socket.io/socket.js

/socket.io/lib/index.js /socket.io/index.js

等...但我仍然有错误 404。如何将其包含在我的 html 项目中?

【问题讨论】:

  • 你在哪里安装节点包?它应该 / .
  • 您需要向我们展示用于初始化和配置 socket.io 的服务器端代码。如果正确完成,则/socket.io/socket.io.js 将在客户端请求时起作用。但是,我们需要查看您的服务器端代码以指出您缺少的内容。

标签: javascript node.js sockets socket.io


【解决方案1】:

你需要

npm install --save-dev socket.io-client

并使用

<script src="node_modules/socket.io-client/dist/socket.io.js"></script>

或者,如果你在客户端使用CommonJS或ES6,你可以通过

导入scoket.io
const io = require('socket.io-client')

import io from 'socket.io-client'

【讨论】:

  • 如果在服务器上正确安装了 socket.io,则不需要这样做,因为正确安装的 socket.io 服务器将自动为/socket.io/socket.io.js 提供服务。
猜你喜欢
  • 2018-01-14
  • 1970-01-01
  • 2015-12-09
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2020-03-13
  • 2020-11-03
  • 2013-11-18
相关资源
最近更新 更多