Connexion.Start().Done() SignalR Problème

Je suis en train de dessiner en temps réel document de l'éditeur de l'application web semblables à google docs SignalR connexions.

Il fonctionne ok c'est à dire quand je suis en train d'écrire dans un éditeur dans un navigateur, le texte est affiché sur les autres navigateurs que j'ai. Le seul problème que j'ai c'est que quand, au début, j'écris des texte, il n'est pas affiché, puis je l'ai supprimer et d'écrire à nouveau et tout est ok.

Quand je débogage à l'aide de la touche F12 dans google Chrome, j'obtiens cette erreur:

Uncaught Error: SignalR: Connection has not been fully initialized. Use .start().done() or        .start().fail() to run logic after the connection has started. 

Je ne comprends pas étant donné que dans mon code, j'utilise $.connexion.moyeu.commencer.done(). Ici, c'est le hub, je suis en utilisant:

using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using Microsoft.AspNet.SignalR;
using Microsoft.AspNet.SignalR.Hubs;

namespace Write.ly
{
    [HubName("editor")]
    public class EditorHub : Hub
    {
        public void Send(string message)
        {
            Clients.Others.broadcastMessage(message);
        }
    }
}

Et c'est le JavaScript et le html sont liés. Veuillez noter que je suis en utilisant tinyMCE comme un plug-in pour l'éditeur.

@{
ViewBag.Title = "- Editor";
ViewBag.ContentStyle = "/Content/CSS/editor.css";
}
<script src="~/Scripts/jquery.signalR-1.0.1.min.js"></script>
<script src="~/signalr/hubs"></script>
<script src="~/Content/TinyMCE/tiny_mce.js"></script>
<script type="text/javascript">
$(function () {
var hub = $.connection.editor;
tinyMCE.init({
mode: "textareas",
theme: "advanced",
plugins: "emotions,spellchecker,advhr,insertdatetime,preview",
//Theme options - button# indicated the row# only
theme_advanced_buttons1: "newdocument,|,bold,italic,underline,|,justifyleft,justifycenter,justifyright,fontselect,fontsizeselect,formatselect",
theme_advanced_buttons2: "cut,copy,paste,|,bullist,numlist,|,outdent,indent,|,undo,redo,|,link,unlink,anchor,image,|,code,preview,|,forecolor,backcolor",
theme_advanced_buttons3: "insertdate,inserttime,|,spellchecker,advhr,,removeformat,|,sub,sup,|,charmap,emotions",
theme_advanced_toolbar_location: "top",
theme_advanced_toolbar_align: "left",
theme_advanced_statusbar_location: "bottom",
theme_advanced_resizing: false,
setup: function (ed) {
ed.onKeyUp.add(function (ed, e) {
hub.client.broadcastMessage = function (message) {
var bookmark = ed.selection.getBookmark(2, true);
tinyMCE.activeEditor.setContent(message);
ed.selection.moveToBookmark(bookmark);
};
$.connection.hub.start().done(function () {
var text = tinyMCE.activeEditor.getContent();
hub.server.send(text);
});
});
}
});
});
</script>
<form method="post" action="somepage">
<textarea id="editor" name="content" cols="100" rows="30"></textarea>
</form>
<button class="btn" onclick="ajaxSave();"><span>Save</span></button>

Des idées?

OriginalL'auteur Bernice | 2013-03-07