我在.NET 4.5 / Javascript webapp中使用realtime.co进行实时消息传递。
我使用代码创建了一个连接:
xRTML.ready(function () {
xRTML.Config.debug = true;
globalRealtimeConnectionId = generateUUID();
globalRealtimeToken = getRealtimeToken();
globalMyConnection = xRTML.ConnectionManager.create(
{
id: globalRealtimeConnectionId,
appkey: 'xxxx',
authToken: globalRealtimeToken, // insert token
url: 'http://ortc-developers.realtime.co/server/2.1'
});
globalMyConnection.bind(
{
// When we get a message, process it
message: function (e) {
var user = e.message; // the use that just joined
}
});
globalMyConnection.active = true;
});
在服务器上,我授予“main:*”(所有子通道)的权限,并返回一个令牌。
当我使用以下代码从服务器向用户发送消息时:
OrtcClient client = (OrtcClient)Application["realtime"]; // get reference to client, which initialized in global.asax
client.Send(channel, user); // send message
user是一个包含用户名的字符串,channel是频道名称(例如main:12_323_34_。我在xrtml-custom-3.2.0-min.js:1
Uncaught TypeError: boolean is not a function xrtml-custom-3.2.0-min.js:1
c.Connection.process
(anonymous function)
f.proxy
IbtRealTimeSJ.d.sockjs.d.sockjs.onmessage
x.dispatchEvent
m._dispatchMessage
m._didMessage
m.websocket.d.ws.onmessage
据我所知,客户端已订阅,因为它会在从服务器向其发送消息时触发某些内容。但我无法理解错误的来源。由于该错误,不会触发绑定到“message:”的功能。
答案 0 :(得分:1)
出于调试目的,如果我是你,我会包含非缩小版本,以便您可以准确地看到导致错误的函数。完成后,应该更容易追踪。
另一个快速说明是,在进行RESTful调用时,您应该尝试在后端执行此操作,以便您的api密钥不会向公众公开。当您创建面向公众的网站时,这显然只是一个问题,所以如果这是一个组织(内部)应用程序,您可以忽略。