将右到左(rtl)支持添加到本地化的Angular 2+应用程序(例如希伯来语和阿拉伯语)中的最佳做法是什么?我查看了几个教程,包括国际化(i18n),但似乎都没有涉及到这一点.例如,我希望<html dir="rtl">在应用程序的构建步骤中添加html方向属性(例如)以及在18n属性中定义的翻译.
我花了很长时间尝试将Socket.IO-Client连接到运行在Sails.js框架上的服务器.客户端基本上是一个在Raspberry Pi上运行Node.js的简单JavaScript应用程序.
想法是一个简单的设备连接到服务器,然后服务器注册设备并订阅它以获取消息.设备从服务器接收消息并执行某些操作.我不希望客户端依赖于任何框架,因此,我试图避免使用Sailsjs-socket.io-client.目前服务器和客户端都在我的本地计算机上运行.这是代码:
// Server side. Sails.js. DevicesController.js
module.exports = {
handshake: function (req, res) {
if (!req.isSocket) return res.badRequest();
Devices.create({}).exec(function (error, data) {
Devices.subscribe(req.socket, data);
});
return res.ok();
}
};
// Client side
var socket = require('socket.io-client')('http://localhost:1337/devices/handshake');
socket.on('error', function(e) {
console.log(e);
// Here I get 'Invalid namespace'
});Run Code Online (Sandbox Code Playgroud)
因此,我在客户端获得错误"无效的命名空间",如果我是对的,则意味着服务器没有打开"/ devices/handshake".但是,在服务器端,如果我列出现有的房间ID(sails.sockets.rooms()),我可以看到,当客户端尝试连接到服务器时,总是会创建一个新的房间.
我尝试使用下面的javascript从浏览器连接到'/ devices/handshake',显然它工作正常.它显然与Sailsjs-socket.io-client一起运行.
io.socket.get('/devices/handshake', function (data, jwres) {
console.log(jwres);
});
io.socket.on('devices', function (data, jwres) {
console.log(data);
});Run Code Online (Sandbox Code Playgroud)
有什么想法我做错了什么?
javascript ×2
angular ×1
chart.js ×1
localization ×1
node.js ×1
sails.io.js ×1
sails.js ×1
socket.io ×1
typescript ×1