带有Socket.io的Meteor-angular2

时间:2017-03-07 04:57:28

标签: sockets angular meteor angular-meteor angular2-meteor

我想将socket.io包含在我的meteor-angular2 app中。但我发现添加socket.io/socketjs有困难。

我试图探索这个https://github.com/Akryum/meteor-socket-io 但那不是meteor-angular2。

在server / main.ts上尝试这个简单的代码

  

var io = require('socket.io')(server); io.on('connection', function(socket) { socket.emit('welcome', { message: 'Welcome!', id: socket.id }); });

然后在控制台上显示此错误

  

错误:无法找到模块' ./ client'   W20170307-11:49:09.344(7)? (STDERR)at require   (packages \ modules-runtime.js:123:19)W20170307-11:49:09.344(7)?   (STDERR)at meteorInstall.node_modules.socket.io.lib.index.js   (packages \ modules.js:1131:14)W20170307-11:49:09.345(7)? (STDERR at   fileEvaluate(packages \ modules-runtime.js:197:9)   W20170307-11:49:09.345(7)? (STDERR)at require   (包\模块-runtime.js:120:16)

任何人都可以共享配置,设置或样板来加入meteor-angular2和socket.io?

1 个答案:

答案 0 :(得分:0)

要在客户端使用套接字,您必须先安装socket.io-client,然后再将其导入组件或服务中以便使用它。

使用socket.io-client安装npm install socket.io-client --save

使用import * as io from 'socket.io-client';

在组件中导入它

使用以下代码连接组件中的套接字:

let socket = io.connect('your socket url', {
  forceNew  : true,
  transports: ['websocket', 'polling', 'flashsocket']
});