使用system.js导入socket.io

3

我正在尝试将 sockets.io 加入到 Aurelia 框架项目中。 我已经通过以下方式安装了 sockets:

jspm install npm:socket.io

然后,我想要导入:
import {io} from "socket.io";

结果如下:

GET http://localhost:9000/jspm_packages/npm/socket.io-client@1.3.5/package.js 404 (Not Found)

问题出在哪里?为什么会引用 package.js 而不是 package.jsonsocket.io.js
3个回答

12

在客户端(Aurelia)中,您应该使用server.io客户端

import io from 'socket.io-client';

var socket = io('http://localhost:9000');
socket.emit('news', { hello: 'world' });

你可以使用 JSPM 轻松导入这个漂亮的包,对吗? 它与上面列出的包是同一个吗? - PW Kad
是的,你可以保留那个“jspm install npm:socket.io”,因为“socket.io-client”是“socket.io”的一个依赖项。 - Nicolas Pennec
1
我必须添加“jspm install npm:socket.io-client”,因为这个模块不想加载。我认为,问题出在npm和jspm清除缓存上,这是我昨天做的。 - InnerWorld

1
如果您的服务器正在运行socket-io,则它将自动提供客户端。因此,您应该能够将以下内容添加到您的config.js文件的地图部分:
"socket.io" : "/socket.io/socket.io.js"

-1

最近我在加载“socket.io-client”时遇到了问题,发现

import io from 'socket.io-client';
var socket = io();

这样做行不通,因为它试图加载未定义的socket_io_client.default。 相反,我不得不使用

import io = require('socket.io-client');
var socket = io();

导入和要求? - pungggi
@pungggi 在 TypeScript 中是有效的。 - Meirion Hughes

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