使用realtime.co发送消息时出错 - 布尔值不是函数

时间:2015-03-12 18:48:56

标签: javascript .net real-time

我在.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:”的功能。

1 个答案:

答案 0 :(得分:1)

出于调试目的,如果我是你,我会包含非缩小版本,以便您可以准确地看到导致错误的函数。完成后,应该更容易追踪。

另一个快速说明是,在进行RESTful调用时,您应该尝试在后端执行此操作,以便您的api密钥不会向公众公开。当您创建面向公众的网站时,这显然只是一个问题,所以如果这是一个组织(内部)应用程序,您可以忽略。