首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
社区首页 >问答首页 >如何在角应用程序中使用Node.js "Net“类(或其他TCP后端)

如何在角应用程序中使用Node.js "Net“类(或其他TCP后端)
EN

Stack Overflow用户
提问于 2017-10-24 17:32:38
回答 1查看 3.3K关注 0票数 1

我不熟悉Node.js和Angular,我要用我的问题来证明这一点。

在我所使用的角度教程中,我看到了用一个角“服务”实现的“后端”部分,它是通过例如"ng c‘s myservice“创建的,其中myservice变成了一个可注入的,被添加到应用程序的提供者列表中。我看到的大多数示例要么使用本地测试数据存根来实现该服务,要么通过http请求实现类似Mongo数据库的内容。

然而,我的(角)应用程序需要连接到后端的TCP服务器.使用http协议不是一个选项。

我第一次尝试的是socket.io-client,结果发现它只是http。然后,我尝试了node.js的Net类,如下所示(在给定端口上侦听一个简单的TCP服务):

代码语言:javascript
代码运行次数:0
运行
复制
import { Injectable } from '@angular/core';

@Injectable()
export class RemoteService {
  net = require('net');
  client;
  serverStatus: string = 'Unknown';
  PORT: number = 51101;
  IP = '127.0.0.1';

  constructor() { 
    console.log('Initializing remote client. Calling ' + this.IP + ':' + this.PORT + ' ...');

    this.client = this.net.createConnection({ port: this.PORT }, { host : this.IP }, () => {
      console.log('Connected to server!!!');
    });
  }
}

..。但是,这会导致浏览器控制台中的错误:

错误TypeError: this.net.createConnection不是一个函数

当我研究这个特定的错误时,常见的解释(简称)是“您不能在浏览器中这样做。”(举个例子这里.)

我确实感到为什么你不能做TCP或UDP或类似的“浏览器”。我不明白的是,作为我的后端的那部分如何被称为“浏览器”。有人能帮我澄清一下吗?(我是否误解了角能做什么?)

在角服务中使用Node.js的Net类是完全可能的吗?如果可能,如何使用?

EN

回答 1

Stack Overflow用户

发布于 2017-10-24 18:48:25

如果像这样设置后端,可以使用NG2套接字模块客户端与服务器进行通信。https://www.npmjs.com/package/ng2-socket-io

代码语言:javascript
代码运行次数:0
运行
复制
var net = require("net");
var tcpServer = net.createServer();
var datas = [];
var sockets = [];

tcpServer.on('connection', function(socket){
    console.log('connection established');
    sockets.push(socket);
    socket.setEncoding('utf8');
    socket.on('data', function(data){
        console.log(data);
    });
});

tcpServer.listen(3333, '127.0.0.1');
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/46916661

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档