Socket.IO客户端.js文件位于何处
Where is the Socket.IO client-side .js file located?
我正在尝试让socket.io(节点库)工作。
我让服务器端的js工作,它正在监听。socket.io网站简单地说:
<script src="/socket.io/socket.io.js"></script>
<script>
var socket = io.connect('http://localhost');
socket.on('news', function (data) {
console.log(data);
socket.emit('my other event', { my: 'data' });
});
</script>
这很好,然而,我正在导入什么JS文件!?!
我进入node_modules目录,在那里我通过npm安装了socket.io,socket.io/lib/
中是socket.io.js
文件。但是,这是服务器端的(使用短语require()
,这在客户端上是错误的)。
我花了一个小时四处寻找,但我找不到任何客户端.js文件。
我错过了什么?
我最终自己回答了这个问题。
socket.io入门页面对此并不清楚,但我发现socket.io的服务器端会自动将.js文件托管在启动节点上的文档中指定的目录中:
"/socket.io/socket.io.js"
因此,无论你的网络应用程序结构如何,你只需指向这个url,它就可以工作了。
我建议检查node_modules目录是否位于应用程序目录的顶层。此外,我认为您需要指定一个端口号;您应该编写类似var socket = io.connect('http://localhost:1337');
的内容,其中端口号为1337
。
如果执行npm install
,则客户端socket.io文件位于node_modules/ssocket.io-client/dist/socket.io.js
来源:Socket入门页面
客户端有几种可用方式:
- 由位于
/socket.io/socket.io.js
的socket.io服务器提供 - 通过webpack作为模块
socket.io-client
包含 - 通过官方CDN
https://cdnjs.cloudflare.com/ajax/libs/socket.io/<version>/socket.io.js
对于第一种,服务器可以通过以下几种方式进行配置:
// standalone
var io = require('socket.io')(port);
// with existing server from e.g. http.createServer or app.listen
var io = require('socket.io')(server);
相关文章:
- 如何包含特定于每个视图angularjs的javascript文件
- 如何使全局变量仅特定于该文件
- JQuery适用于小提琴,但适用于实际的html文件
- HTML-SVG文件动画不适用于主机,但适用于本地
- PhantomJS 2.0.0 page.open() 不再适用于本地文件
- 在 PHP 头文件中处理特定于页面的 JavaScript
- 相对于文件系统而不是网站,源映射文件位置更少
- 更改某些CSS不再适用于外部Javascript文件
- Segment.io 和 mixpanel 实现配置文件,适用于生产和非生产环境
- Java 脚本不适用于外部工作表,但它适用于主 html 文件.为什么会这样,我该如何解决
- jQuery中的跨域请求仅适用于某些文件
- 拖放区.js + Laravel-多文件上传不起作用(仅适用于一个文件)
- 将 DRY 应用于整个文件中的多个循环
- 如何创建一个类似于Github's文件管理器的动画
- iPad浏览器崩溃的问题(在下载约7 MB的图像时)是否也适用于音频文件?
- 将加载程序应用于特定文件
- NodeJS:我的节点文件依赖于其他文件中的变量
- 在ember.js web应用程序中,伪持久化状态应该存在于何处
- goog.inherit 存在于输出文件中
- 如何调用一个文件,依赖于原始文件