使用 system.js 导入 socket.io

import socket.io using system.js

我正在尝试包含到 Aurelia 框架项目 sockets.io。 我通过以下方式安装了套接字:

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

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

import io from 'socket.io-client';

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

我最近在加载 '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();

如果您的服务器是 运行 socket-io 那么它无论如何都会为客户端提供服务。因此,您应该能够添加到 config.js 文件的地图部分:

"socket.io" : "/socket.io/socket.io.js"