我正在尝试通过构建一组动态创建的聊天室来学习Socket.io,这些聊天室在用户进入和离开时会发出"已连接"和"已断开连接"的消息.看着后夫妇 的 问题,我已经把一些功能,但大多数链接的响应是从谁承认他们已经一起黑客攻击的人的答案和我注意到有一个更通用-关于正确的方式来讨论-和最近在Socket.io repo上做这个(特别是这里和这里)
由于我是这样的新手,我不知道下面的工作是否是一种可接受的做事方式,或者只是偶然发生功能,但会导致性能问题或导致听众太多.如果有一种理想的 - 官方的 - 加入和离开房间的方式感觉不那么笨重,我很乐意了解它.
客户
var roomId = ChatRoomData._id // comes from a factory
function init() {
// Make sure the Socket is connected
if (!Socket.socket) {
Socket.connect();
}
// Sends roomId to server
Socket.on('connect', function() {
Socket.emit('room', roomId);
});
// Remove the event listener when the controller instance is destroyed
$scope.$on('$destroy', function () {
Socket.removeListener('connect');
});
}
init();
Run Code Online (Sandbox Code Playgroud)
服务器
io.sockets.once('connection', function(socket){
socket.on('room', function(room){ // take room variable from …Run Code Online (Sandbox Code Playgroud) 我正在尝试在 Nuxt.js 之上使用 Tone.js 构建一个应用程序。Tone.js 需要浏览器的 Web Audio API,当 Nuxt 在服务器端渲染内容时,我的构建一直失败。
Nuxt 在插件文档中解决了这个问题,我在nuxt.config.js文件编写中也遵循了这种方法:
module.exports = {
plugins: [{src: '~node_modules/tone/build/Tone.js', ssr: false }],
}
Run Code Online (Sandbox Code Playgroud)
但是,这会导致此错误:[nuxt] Error while initializing app TypeError: Cannot read property 'isUndef' of undefined。查看 Tone 的源代码,我很确定这是因为我得到了它,因为代码仍在服务器端执行。
我见过将 js 文件放入static文件夹并检查的解决方案,process.browser但两者都导致Tone未定义。