是否可以require()在客户端使用(或类似的东西)?
例
var myClass = require('./js/myclass.js');
Run Code Online (Sandbox Code Playgroud) 我想在两个或多个不同的node.js应用服务器之间启用基于套接字的p2p通信.我正在使用socket.io来处理给定服务器和它所服务的Web应用程序之间的所有这种通信 - 但我正在寻找的是一种通信服务器到服务器的方式.
我最初认为它会像这样简单:
var io = require("socket.io");
var socket = io.connect("my remote endpoint");
Run Code Online (Sandbox Code Playgroud)
但是,事实证明服务器端socket.io实现不提供"连接"方法,只提供listen方法.
为什么是这样?为什么我不能将节点应用程序服务器视为在其他地方运行的socket.io服务器的客户端?有什么办法可以实现这个功能吗?
我已经按照以前一直为我工作的完全相同的步骤,通过express创建应用程序,将模块依赖项放在node_modules文件夹中.似乎找不到socket.io客户端javascript文件.
(我已经查看了其他人的修复,这是在脚本选项卡中包含JavaScript文件.我没有必要为我之前的节点+ socket.io项目执行此操作).
客户端上的JavaScript:
var socket = io.connect('http://localhost');
Run Code Online (Sandbox Code Playgroud)
服务器上的JavaScript:
var io = require('socket.io').listen(app);
Run Code Online (Sandbox Code Playgroud)
node_modules文件夹:
socket.io, which has an internal node_modules folder containing socket.io-client
Run Code Online (Sandbox Code Playgroud)
错误信息:
Uncaught ReferenceError: io is not defined
(anonymous function)
Run Code Online (Sandbox Code Playgroud)
当我手动包含socket.io客户端时: http ://cdn.socket.io/stable/socket.io.js
我得到一个不同的错误:
Uncaught TypeError: Object #<Object> has no method 'connect'
(anonymous function)
Run Code Online (Sandbox Code Playgroud)