在 Angular4 中使用网络套接字?

Posted

技术标签:

【中文标题】在 Angular4 中使用网络套接字?【英文标题】:Using web-sockets with Angular4? 【发布时间】:2017-06-30 19:05:00 【问题描述】:

如何 HttpModule 不支持,有没有可以使用的 NPM 包?

设置:

    .NET Core Web API 用于 API 访问 列表项

数据库的 MS SQL DB

【问题讨论】:

因为new WebSocket('http://www.example.com') 不需要模块。 【参考方案1】:

Angular 不提供支持 WebSockets 的特殊对象。但好消息是所有浏览器都支持 WebSocket,您可以在 Angular4 应用程序中使用它。在这个应用程序中,我在服务器(Node.js)上使用 ws 包,在客户端使用浏览器的 WebSocket 对象(参见https://github.com/Farata/angular2typescript/blob/master/Angular4/auction/client/src/app/product-detail/websocket.service.ts)

【讨论】:

【参考方案2】:

一个选项,您始终可以使用 Firebase(顺便说一句,这是一个非常有趣的选项)。几乎所有繁重的工作都为您完成。

否则,WebSockets 是 html5 标准。你只需要编写一些代码来实现它。查看这个包含各种信息、回声演示/测试等的网站:

https://www.websocket.org/

【讨论】:

我的后端数据库是 MS SQL DB,而不是 Firebase。 那真的没关系。我已经集成了 Firebase 登录并推送到应用程序中,而不将其用作我的数据库。但除此之外,Web 套接字实现起来并不复杂,您可以轻松创建模块/服务。再次查看 websocket.org。你仍然需要做后端工作,但同样有各种各样的包,python 等。【参考方案3】:

你可以使用socket.io-client,安装的时候一定要包含types。

https://www.npmjs.com/package/socket.io-client

安装: npm install --save socket.io-client

npm install --save @types/socket.io-clientnpm install --save-dev @types/socket.io-client

注意:如果有兴趣,有一个很棒的教程,其中包括对 MEAN 全栈环境的指导here。

edit: 正如其他人所提到的,WebSocket 是一种 HTML5 标准。这将为前端套接字交互创建一个易于使用的界面,并且适用于任何后端环境。

【讨论】:

【参考方案4】:

我在我的 Angular 项目中使用 angular2-websocket/angular2-websocket, 它工作得很好 https://github.com/afrad/angular2-websocket

【讨论】:

虽然此链接可能会回答问题,但最好在此处包含答案的基本部分并提供链接以供参考。如果链接页面发生更改,仅链接的答案可能会失效。

以上是关于在 Angular4 中使用网络套接字?的主要内容,如果未能解决你的问题,请参考以下文章

angular 4/socket.io 访问全局变量和函数调用

服务器套接字如何使用c ++知道在Windows中拔出的网络电缆

在 Windows 中为套接字使用特定的网络接口

如何在 chrome 控制台中建立网络套接字连接?

2017.07.16 Python网络编程之在套接字服务器中使用ThreadingMixIn

Java 网络编程 使用TCP/IP的套接字(Socket)进行通信