新的SQLalchemy,这是我的问题:
我的模型是:
user_group_association_table = Table('user_group_association', Base.metadata,
Column('user_id', Integer, ForeignKey('user.id')),
Column('group_id', Integer, ForeignKey('group.id'))
)
department_group_association_table = Table('department_group_association', Base.metadata,
Column('department', Integer, ForeignKey('department.id')),
Column('group_id', Integer, ForeignKey('group.id'))
)
class Department(Base):
__tablename__ = 'department'
id = Column(Integer, primary_key=True)
name = Column(String(50))
class Group(Base):
__tablename__ = 'group'
id = Column(Integer, primary_key=True)
name = Column(String)
users = relationship("User", secondary=user_group_association_table, backref="groups")
departments = relationship("Department", secondary=department_group_association_table, backref="groups")
class User(Base):
__tablename__ = 'user'
id = Column(Integer, primary_key=True)
firstname = Column(String(50))
surname = Column(String(50))
Run Code Online (Sandbox Code Playgroud)
因此,此代码反映了以下关系:
-------- --------- --------------
| User | …Run Code Online (Sandbox Code Playgroud) 我正在考虑使用socketcluster构建实时应用程序。文档非常清楚,但我找不到以编程方式创建按需频道的方法。
我的需求是:作为用户,我想调用 REST API,它将创建一个立即在服务器上启动并运行的通道。
例如,从客户端调用:POST https://<myServer>/api/channels使用 JSON 正文{ "channel": "myChannel}将在服务器上创建一个myChannel通道,并且我的客户端代码将能够直接订阅(在收到服务器响应后):
var myChannel = socket.subscribe('myChannel');
myChannel.publish('myChannel', 'I am here !');
myChannel.watch(function (data) {
console.log('received data from myChannel:', data);
});
Run Code Online (Sandbox Code Playgroud)
我想这个新创建的通道将使用我的授权中间件,因为中间件是在服务器级别定义的 (wsServer.addMiddleware(wsServer.MIDDLEWARE_SUBSCRIBE, ...)
非常感谢你的帮助,
皮埃尔