我正在尝试将Socket.io与Node.js一起使用并发送到路由逻辑中的套接字.
我有一个相当标准的Express 3设置,其中包含一个位于路由中的server.js文件,然后我有一个index.js,它位于路径文件夹中,用于导出站点的所有页面/可公开访问的功能.所以他们看起来像:
exports.index = function (req, res) {
res.render('index', {
title: "Awesome page"
});
};
Run Code Online (Sandbox Code Playgroud)
与server.js中定义的路由类似:
app.get('/',routes.index);
Run Code Online (Sandbox Code Playgroud)
我假设我必须在server.js中创建socket.io对象,因为它需要服务器对象,但是如何访问该对象并从index.js导出函数向它发出?
在我的控制器中,因为我希望能够填写有关视频的一些细节并实际上传它,所以Video类不需要实际视频,因为它将被传递给另一个Web服务.
public class VideoUploadModel
{
public HttpPostedFileBase vid { get; set; }
public Video videoModel { get; set; }
}
//
// POST: /Video/Create
[HttpPost]
public ActionResult Create(VideoUploadModel VM)
{
if (ModelState.IsValid)
{
db.Videos.AddObject(VM.videoModel);
db.SaveChanges();
return RedirectToAction("Index");
}
ViewBag.UserId = new SelectList(db.DBUsers, "Id", "FName", VM.videoModel.UserId);
return View(VM);
}
Run Code Online (Sandbox Code Playgroud)
在我看来,我有
@model LifeHighlightsShoeLace.Controllers.VideoController.VideoUploadModel
@{
ViewBag.Title = "Create";
}
<h2>Create</h2>
<script src="@Url.Content("~/Scripts/jquery.validate.min.js")" type="text/javascript"></script>
Run Code Online (Sandbox Code Playgroud)
@using (Html.BeginForm("Create", "Video", FormMethod.Post, new { enctype = "multipart/form-data" }))
{
@Html.ValidationSummary(true)
<fieldset>
<legend>Video</legend>
<div class="editor-label">
@Html.LabelFor(model => model.videoModel.KalturaID)
</div> …Run Code Online (Sandbox Code Playgroud)